﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-f(sixleaves) = sixleaves-随笔分类-objective-c</title><link>http://www.cppblog.com/sixleaves/category/21079.html</link><description>重剑无锋 大巧不工</description><language>zh-cn</language><lastBuildDate>Sat, 16 May 2015 16:10:37 GMT</lastBuildDate><pubDate>Sat, 16 May 2015 16:10:37 GMT</pubDate><ttl>60</ttl><item><title>OC-EX43日期对象与日期格式化对象</title><link>http://www.cppblog.com/sixleaves/archive/2015/05/15/210660.html</link><dc:creator>swp</dc:creator><author>swp</author><pubDate>Fri, 15 May 2015 07:19:00 GMT</pubDate><guid>http://www.cppblog.com/sixleaves/archive/2015/05/15/210660.html</guid><wfw:comment>http://www.cppblog.com/sixleaves/comments/210660.html</wfw:comment><comments>http://www.cppblog.com/sixleaves/archive/2015/05/15/210660.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixleaves/comments/commentRss/210660.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixleaves/services/trackbacks/210660.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 1.NSDate与NSDateFormatter的创建   2.日期转为字符串、字符串转日期的方式  3.日期格式化的参数&nbsp;&nbsp;<a href='http://www.cppblog.com/sixleaves/archive/2015/05/15/210660.html'>阅读全文</a><img src ="http://www.cppblog.com/sixleaves/aggbug/210660.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixleaves/" target="_blank">swp</a> 2015-05-15 15:19 <a href="http://www.cppblog.com/sixleaves/archive/2015/05/15/210660.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OC-EX42OC包装类</title><link>http://www.cppblog.com/sixleaves/archive/2015/05/15/210659.html</link><dc:creator>swp</dc:creator><author>swp</author><pubDate>Fri, 15 May 2015 06:49:00 GMT</pubDate><guid>http://www.cppblog.com/sixleaves/archive/2015/05/15/210659.html</guid><wfw:comment>http://www.cppblog.com/sixleaves/comments/210659.html</wfw:comment><comments>http://www.cppblog.com/sixleaves/archive/2015/05/15/210659.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixleaves/comments/commentRss/210659.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixleaves/services/trackbacks/210659.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 1.NSNumber、NSValue分别用于包装什么  2.如何解包装和注意事项  3.NSNumber与NSValue的关系&nbsp;&nbsp;<a href='http://www.cppblog.com/sixleaves/archive/2015/05/15/210659.html'>阅读全文</a><img src ="http://www.cppblog.com/sixleaves/aggbug/210659.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixleaves/" target="_blank">swp</a> 2015-05-15 14:49 <a href="http://www.cppblog.com/sixleaves/archive/2015/05/15/210659.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OC-EX41OC集合类</title><link>http://www.cppblog.com/sixleaves/archive/2015/05/14/210653.html</link><dc:creator>swp</dc:creator><author>swp</author><pubDate>Thu, 14 May 2015 11:39:00 GMT</pubDate><guid>http://www.cppblog.com/sixleaves/archive/2015/05/14/210653.html</guid><wfw:comment>http://www.cppblog.com/sixleaves/comments/210653.html</wfw:comment><comments>http://www.cppblog.com/sixleaves/archive/2015/05/14/210653.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixleaves/comments/commentRss/210653.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixleaves/services/trackbacks/210653.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 1.掌握总结即可。 2.在掌握共同的接口特点&nbsp;&nbsp;<a href='http://www.cppblog.com/sixleaves/archive/2015/05/14/210653.html'>阅读全文</a><img src ="http://www.cppblog.com/sixleaves/aggbug/210653.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixleaves/" target="_blank">swp</a> 2015-05-14 19:39 <a href="http://www.cppblog.com/sixleaves/archive/2015/05/14/210653.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OC-EX40NSString与NSMutableString</title><link>http://www.cppblog.com/sixleaves/archive/2015/05/14/210651.html</link><dc:creator>swp</dc:creator><author>swp</author><pubDate>Thu, 14 May 2015 08:08:00 GMT</pubDate><guid>http://www.cppblog.com/sixleaves/archive/2015/05/14/210651.html</guid><wfw:comment>http://www.cppblog.com/sixleaves/comments/210651.html</wfw:comment><comments>http://www.cppblog.com/sixleaves/archive/2015/05/14/210651.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixleaves/comments/commentRss/210651.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixleaves/services/trackbacks/210651.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 1.NSString的创建 2.NSString的读与写 3.NSMutableString的创建 4.NSMutable与NSString的区别&nbsp;&nbsp;<a href='http://www.cppblog.com/sixleaves/archive/2015/05/14/210651.html'>阅读全文</a><img src ="http://www.cppblog.com/sixleaves/aggbug/210651.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixleaves/" target="_blank">swp</a> 2015-05-14 16:08 <a href="http://www.cppblog.com/sixleaves/archive/2015/05/14/210651.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OC-EX39OC常用结构体</title><link>http://www.cppblog.com/sixleaves/archive/2015/05/13/210643.html</link><dc:creator>swp</dc:creator><author>swp</author><pubDate>Wed, 13 May 2015 13:13:00 GMT</pubDate><guid>http://www.cppblog.com/sixleaves/archive/2015/05/13/210643.html</guid><wfw:comment>http://www.cppblog.com/sixleaves/comments/210643.html</wfw:comment><comments>http://www.cppblog.com/sixleaves/archive/2015/05/13/210643.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixleaves/comments/commentRss/210643.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixleaves/services/trackbacks/210643.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 1.各结构体的含义(四个) 2.结构体的常用创建方式 3.快速打印结构体的方法 4.CGFloat的本质&nbsp;&nbsp;<a href='http://www.cppblog.com/sixleaves/archive/2015/05/13/210643.html'>阅读全文</a><img src ="http://www.cppblog.com/sixleaves/aggbug/210643.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixleaves/" target="_blank">swp</a> 2015-05-13 21:13 <a href="http://www.cppblog.com/sixleaves/archive/2015/05/13/210643.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OC-EX38再谈代理设计模式</title><link>http://www.cppblog.com/sixleaves/archive/2015/05/13/210640.html</link><dc:creator>swp</dc:creator><author>swp</author><pubDate>Wed, 13 May 2015 08:39:00 GMT</pubDate><guid>http://www.cppblog.com/sixleaves/archive/2015/05/13/210640.html</guid><wfw:comment>http://www.cppblog.com/sixleaves/comments/210640.html</wfw:comment><comments>http://www.cppblog.com/sixleaves/archive/2015/05/13/210640.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixleaves/comments/commentRss/210640.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixleaves/services/trackbacks/210640.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 1.代理设的概念 2.代理设计模式的使用场合 3.代理设计模式的实现&nbsp;&nbsp;<a href='http://www.cppblog.com/sixleaves/archive/2015/05/13/210640.html'>阅读全文</a><img src ="http://www.cppblog.com/sixleaves/aggbug/210640.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixleaves/" target="_blank">swp</a> 2015-05-13 16:39 <a href="http://www.cppblog.com/sixleaves/archive/2015/05/13/210640.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OC-EX37Protocol</title><link>http://www.cppblog.com/sixleaves/archive/2015/05/13/210639.html</link><dc:creator>swp</dc:creator><author>swp</author><pubDate>Wed, 13 May 2015 03:09:00 GMT</pubDate><guid>http://www.cppblog.com/sixleaves/archive/2015/05/13/210639.html</guid><wfw:comment>http://www.cppblog.com/sixleaves/comments/210639.html</wfw:comment><comments>http://www.cppblog.com/sixleaves/archive/2015/05/13/210639.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixleaves/comments/commentRss/210639.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixleaves/services/trackbacks/210639.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 1.protocol的作用 2.protocol相关语法 3.基协议 4.限制对象类型 5.协议前置声明 6.协议也能遵守协议&nbsp;&nbsp;<a href='http://www.cppblog.com/sixleaves/archive/2015/05/13/210639.html'>阅读全文</a><img src ="http://www.cppblog.com/sixleaves/aggbug/210639.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixleaves/" target="_blank">swp</a> 2015-05-13 11:09 <a href="http://www.cppblog.com/sixleaves/archive/2015/05/13/210639.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OC-EX36再谈循环引用&amp;&amp;项目转ARC</title><link>http://www.cppblog.com/sixleaves/archive/2015/05/12/210632.html</link><dc:creator>swp</dc:creator><author>swp</author><pubDate>Tue, 12 May 2015 11:39:00 GMT</pubDate><guid>http://www.cppblog.com/sixleaves/archive/2015/05/12/210632.html</guid><wfw:comment>http://www.cppblog.com/sixleaves/comments/210632.html</wfw:comment><comments>http://www.cppblog.com/sixleaves/archive/2015/05/12/210632.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixleaves/comments/commentRss/210632.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixleaves/services/trackbacks/210632.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 1.全面总结循环引用的解决方案 2.如何将工程转换成ARC项目。 3.如何让ARC与非ARC混用&nbsp;&nbsp;<a href='http://www.cppblog.com/sixleaves/archive/2015/05/12/210632.html'>阅读全文</a><img src ="http://www.cppblog.com/sixleaves/aggbug/210632.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixleaves/" target="_blank">swp</a> 2015-05-12 19:39 <a href="http://www.cppblog.com/sixleaves/archive/2015/05/12/210632.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OC-EX35ARC基本原理</title><link>http://www.cppblog.com/sixleaves/archive/2015/05/12/210631.html</link><dc:creator>swp</dc:creator><author>swp</author><pubDate>Tue, 12 May 2015 08:47:00 GMT</pubDate><guid>http://www.cppblog.com/sixleaves/archive/2015/05/12/210631.html</guid><wfw:comment>http://www.cppblog.com/sixleaves/comments/210631.html</wfw:comment><comments>http://www.cppblog.com/sixleaves/archive/2015/05/12/210631.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixleaves/comments/commentRss/210631.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixleaves/services/trackbacks/210631.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 1.ARC释放对象的判断准则 2.ARC的4个特点 3.强/弱指针的概念 4.常见错误&nbsp;&nbsp;<a href='http://www.cppblog.com/sixleaves/archive/2015/05/12/210631.html'>阅读全文</a><img src ="http://www.cppblog.com/sixleaves/aggbug/210631.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixleaves/" target="_blank">swp</a> 2015-05-12 16:47 <a href="http://www.cppblog.com/sixleaves/archive/2015/05/12/210631.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OC-EX34便利构造器之autorelease</title><link>http://www.cppblog.com/sixleaves/archive/2015/05/10/210611.html</link><dc:creator>swp</dc:creator><author>swp</author><pubDate>Sun, 10 May 2015 11:35:00 GMT</pubDate><guid>http://www.cppblog.com/sixleaves/archive/2015/05/10/210611.html</guid><wfw:comment>http://www.cppblog.com/sixleaves/comments/210611.html</wfw:comment><comments>http://www.cppblog.com/sixleaves/archive/2015/05/10/210611.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixleaves/comments/commentRss/210611.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixleaves/services/trackbacks/210611.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 1.便利构造器的概念  2.便利构造器的规范 3.便利构造器与self(self class)&nbsp;&nbsp;<a href='http://www.cppblog.com/sixleaves/archive/2015/05/10/210611.html'>阅读全文</a><img src ="http://www.cppblog.com/sixleaves/aggbug/210611.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixleaves/" target="_blank">swp</a> 2015-05-10 19:35 <a href="http://www.cppblog.com/sixleaves/archive/2015/05/10/210611.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OC-EX33autorelease使用注意事项</title><link>http://www.cppblog.com/sixleaves/archive/2015/05/10/210609.html</link><dc:creator>swp</dc:creator><author>swp</author><pubDate>Sun, 10 May 2015 06:30:00 GMT</pubDate><guid>http://www.cppblog.com/sixleaves/archive/2015/05/10/210609.html</guid><wfw:comment>http://www.cppblog.com/sixleaves/comments/210609.html</wfw:comment><comments>http://www.cppblog.com/sixleaves/archive/2015/05/10/210609.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixleaves/comments/commentRss/210609.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixleaves/services/trackbacks/210609.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 1.autorelease的优点   2.autorelease使用场合(注意点) 3.autorelease添加到哪个池子 4.autorelease的常见错误&nbsp;&nbsp;<a href='http://www.cppblog.com/sixleaves/archive/2015/05/10/210609.html'>阅读全文</a><img src ="http://www.cppblog.com/sixleaves/aggbug/210609.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixleaves/" target="_blank">swp</a> 2015-05-10 14:30 <a href="http://www.cppblog.com/sixleaves/archive/2015/05/10/210609.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OC-EX32自动释放池与autorelease</title><link>http://www.cppblog.com/sixleaves/archive/2015/05/10/210603.html</link><dc:creator>swp</dc:creator><author>swp</author><pubDate>Sun, 10 May 2015 03:17:00 GMT</pubDate><guid>http://www.cppblog.com/sixleaves/archive/2015/05/10/210603.html</guid><wfw:comment>http://www.cppblog.com/sixleaves/comments/210603.html</wfw:comment><comments>http://www.cppblog.com/sixleaves/archive/2015/05/10/210603.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixleaves/comments/commentRss/210603.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixleaves/services/trackbacks/210603.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 1.自动释放池的概念和作用 2.autorelease的作用、返回值 3.自动释放池的两种创建方式&nbsp;&nbsp;<a href='http://www.cppblog.com/sixleaves/archive/2015/05/10/210603.html'>阅读全文</a><img src ="http://www.cppblog.com/sixleaves/aggbug/210603.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixleaves/" target="_blank">swp</a> 2015-05-10 11:17 <a href="http://www.cppblog.com/sixleaves/archive/2015/05/10/210603.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OC-EX31循环引用与循环retain</title><link>http://www.cppblog.com/sixleaves/archive/2015/05/09/210598.html</link><dc:creator>swp</dc:creator><author>swp</author><pubDate>Sat, 09 May 2015 08:56:00 GMT</pubDate><guid>http://www.cppblog.com/sixleaves/archive/2015/05/09/210598.html</guid><wfw:comment>http://www.cppblog.com/sixleaves/comments/210598.html</wfw:comment><comments>http://www.cppblog.com/sixleaves/archive/2015/05/09/210598.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixleaves/comments/commentRss/210598.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixleaves/services/trackbacks/210598.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 1.循环引用原因，解决办法。 2.@class的两个作用 3.如何解决循环retain(破坏环)&nbsp;&nbsp;<a href='http://www.cppblog.com/sixleaves/archive/2015/05/09/210598.html'>阅读全文</a><img src ="http://www.cppblog.com/sixleaves/aggbug/210598.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixleaves/" target="_blank">swp</a> 2015-05-09 16:56 <a href="http://www.cppblog.com/sixleaves/archive/2015/05/09/210598.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OC-EX30模型练习</title><link>http://www.cppblog.com/sixleaves/archive/2015/05/09/210588.html</link><dc:creator>swp</dc:creator><author>swp</author><pubDate>Fri, 08 May 2015 17:23:00 GMT</pubDate><guid>http://www.cppblog.com/sixleaves/archive/2015/05/09/210588.html</guid><wfw:comment>http://www.cppblog.com/sixleaves/comments/210588.html</wfw:comment><comments>http://www.cppblog.com/sixleaves/archive/2015/05/09/210588.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixleaves/comments/commentRss/210588.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixleaves/services/trackbacks/210588.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 1.模型的概念 2.练习@property的各个参数&nbsp;&nbsp;<a href='http://www.cppblog.com/sixleaves/archive/2015/05/09/210588.html'>阅读全文</a><img src ="http://www.cppblog.com/sixleaves/aggbug/210588.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixleaves/" target="_blank">swp</a> 2015-05-09 01:23 <a href="http://www.cppblog.com/sixleaves/archive/2015/05/09/210588.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OC-EX29@property的各项参数详解</title><link>http://www.cppblog.com/sixleaves/archive/2015/05/08/210585.html</link><dc:creator>swp</dc:creator><author>swp</author><pubDate>Fri, 08 May 2015 12:41:00 GMT</pubDate><guid>http://www.cppblog.com/sixleaves/archive/2015/05/08/210585.html</guid><wfw:comment>http://www.cppblog.com/sixleaves/comments/210585.html</wfw:comment><comments>http://www.cppblog.com/sixleaves/archive/2015/05/08/210585.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixleaves/comments/commentRss/210585.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixleaves/services/trackbacks/210585.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 1.掌握@property方法的四类参数设置，现在重点掌握与setter方法内存管理相关的参数。&nbsp;&nbsp;<a href='http://www.cppblog.com/sixleaves/archive/2015/05/08/210585.html'>阅读全文</a><img src ="http://www.cppblog.com/sixleaves/aggbug/210585.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixleaves/" target="_blank">swp</a> 2015-05-08 20:41 <a href="http://www.cppblog.com/sixleaves/archive/2015/05/08/210585.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OC-EX28set方法内存管理</title><link>http://www.cppblog.com/sixleaves/archive/2015/05/08/210581.html</link><dc:creator>swp</dc:creator><author>swp</author><pubDate>Fri, 08 May 2015 07:07:00 GMT</pubDate><guid>http://www.cppblog.com/sixleaves/archive/2015/05/08/210581.html</guid><wfw:comment>http://www.cppblog.com/sixleaves/comments/210581.html</wfw:comment><comments>http://www.cppblog.com/sixleaves/archive/2015/05/08/210581.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixleaves/comments/commentRss/210581.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixleaves/services/trackbacks/210581.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 1.能说清楚setter方法内存管理中每一行的意义和使用场景，并掌握。  2.能够说清楚dealloc的内存管理规范&nbsp;&nbsp;<a href='http://www.cppblog.com/sixleaves/archive/2015/05/08/210581.html'>阅读全文</a><img src ="http://www.cppblog.com/sixleaves/aggbug/210581.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixleaves/" target="_blank">swp</a> 2015-05-08 15:07 <a href="http://www.cppblog.com/sixleaves/archive/2015/05/08/210581.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OC-EX27多对象内存管理</title><link>http://www.cppblog.com/sixleaves/archive/2015/05/07/210571.html</link><dc:creator>swp</dc:creator><author>swp</author><pubDate>Thu, 07 May 2015 08:15:00 GMT</pubDate><guid>http://www.cppblog.com/sixleaves/archive/2015/05/07/210571.html</guid><wfw:comment>http://www.cppblog.com/sixleaves/comments/210571.html</wfw:comment><comments>http://www.cppblog.com/sixleaves/archive/2015/05/07/210571.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixleaves/comments/commentRss/210571.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixleaves/services/trackbacks/210571.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 1.掌握QQ堂例子的类比引用计数原理 2.内存管理的第一条原则谁创建，谁释放  3.第二条原则谁retain，谁负责release。&nbsp;&nbsp;<a href='http://www.cppblog.com/sixleaves/archive/2015/05/07/210571.html'>阅读全文</a><img src ="http://www.cppblog.com/sixleaves/aggbug/210571.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixleaves/" target="_blank">swp</a> 2015-05-07 16:15 <a href="http://www.cppblog.com/sixleaves/archive/2015/05/07/210571.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OC-EX26野指针与空指针</title><link>http://www.cppblog.com/sixleaves/archive/2015/05/05/210550.html</link><dc:creator>swp</dc:creator><author>swp</author><pubDate>Tue, 05 May 2015 08:37:00 GMT</pubDate><guid>http://www.cppblog.com/sixleaves/archive/2015/05/05/210550.html</guid><wfw:comment>http://www.cppblog.com/sixleaves/comments/210550.html</wfw:comment><comments>http://www.cppblog.com/sixleaves/archive/2015/05/05/210550.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixleaves/comments/commentRss/210550.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixleaves/services/trackbacks/210550.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 1.掌握僵尸对象\野指针\空指针。 &nbsp;&nbsp;<a href='http://www.cppblog.com/sixleaves/archive/2015/05/05/210550.html'>阅读全文</a><img src ="http://www.cppblog.com/sixleaves/aggbug/210550.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixleaves/" target="_blank">swp</a> 2015-05-05 16:37 <a href="http://www.cppblog.com/sixleaves/archive/2015/05/05/210550.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OC-EX25引用计数器</title><link>http://www.cppblog.com/sixleaves/archive/2015/05/05/210548.html</link><dc:creator>swp</dc:creator><author>swp</author><pubDate>Tue, 05 May 2015 08:17:00 GMT</pubDate><guid>http://www.cppblog.com/sixleaves/archive/2015/05/05/210548.html</guid><wfw:comment>http://www.cppblog.com/sixleaves/comments/210548.html</wfw:comment><comments>http://www.cppblog.com/sixleaves/archive/2015/05/05/210548.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixleaves/comments/commentRss/210548.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixleaves/services/trackbacks/210548.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 1.引用计数器的范围 2.引用计数的数据结构 3.引用计数器的创建 4.引用计数器的操作 5.对象的销毁过程 6.内存管理原则&nbsp;&nbsp;<a href='http://www.cppblog.com/sixleaves/archive/2015/05/05/210548.html'>阅读全文</a><img src ="http://www.cppblog.com/sixleaves/aggbug/210548.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixleaves/" target="_blank">swp</a> 2015-05-05 16:17 <a href="http://www.cppblog.com/sixleaves/archive/2015/05/05/210548.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OC-EX24内存管理前言</title><link>http://www.cppblog.com/sixleaves/archive/2015/05/04/210538.html</link><dc:creator>swp</dc:creator><author>swp</author><pubDate>Mon, 04 May 2015 02:27:00 GMT</pubDate><guid>http://www.cppblog.com/sixleaves/archive/2015/05/04/210538.html</guid><wfw:comment>http://www.cppblog.com/sixleaves/comments/210538.html</wfw:comment><comments>http://www.cppblog.com/sixleaves/archive/2015/05/04/210538.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixleaves/comments/commentRss/210538.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixleaves/services/trackbacks/210538.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 1.代码分析  2.堆与栈的区别 3.为什么要管理内存&nbsp;&nbsp;<a href='http://www.cppblog.com/sixleaves/archive/2015/05/04/210538.html'>阅读全文</a><img src ="http://www.cppblog.com/sixleaves/aggbug/210538.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixleaves/" target="_blank">swp</a> 2015-05-04 10:27 <a href="http://www.cppblog.com/sixleaves/archive/2015/05/04/210538.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OC-EX23SEL</title><link>http://www.cppblog.com/sixleaves/archive/2015/05/03/210530.html</link><dc:creator>swp</dc:creator><author>swp</author><pubDate>Sun, 03 May 2015 08:51:00 GMT</pubDate><guid>http://www.cppblog.com/sixleaves/archive/2015/05/03/210530.html</guid><wfw:comment>http://www.cppblog.com/sixleaves/comments/210530.html</wfw:comment><comments>http://www.cppblog.com/sixleaves/archive/2015/05/03/210530.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixleaves/comments/commentRss/210530.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixleaves/services/trackbacks/210530.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 1.方法与SEL的关系  2.SEL对象的2中创建方式  3._cmd的本质&nbsp;&nbsp;<a href='http://www.cppblog.com/sixleaves/archive/2015/05/03/210530.html'>阅读全文</a><img src ="http://www.cppblog.com/sixleaves/aggbug/210530.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixleaves/" target="_blank">swp</a> 2015-05-03 16:51 <a href="http://www.cppblog.com/sixleaves/archive/2015/05/03/210530.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OC-EX22丰富Log信息</title><link>http://www.cppblog.com/sixleaves/archive/2015/05/03/210528.html</link><dc:creator>swp</dc:creator><author>swp</author><pubDate>Sun, 03 May 2015 06:48:00 GMT</pubDate><guid>http://www.cppblog.com/sixleaves/archive/2015/05/03/210528.html</guid><wfw:comment>http://www.cppblog.com/sixleaves/comments/210528.html</wfw:comment><comments>http://www.cppblog.com/sixleaves/archive/2015/05/03/210528.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixleaves/comments/commentRss/210528.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixleaves/services/trackbacks/210528.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 1.__LINE__\__func__\__FILE__的含义和对应的格式化输出。&nbsp;&nbsp;<a href='http://www.cppblog.com/sixleaves/archive/2015/05/03/210528.html'>阅读全文</a><img src ="http://www.cppblog.com/sixleaves/aggbug/210528.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixleaves/" target="_blank">swp</a> 2015-05-03 14:48 <a href="http://www.cppblog.com/sixleaves/archive/2015/05/03/210528.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OC-EX21类的加载和初始化</title><link>http://www.cppblog.com/sixleaves/archive/2015/05/03/210526.html</link><dc:creator>swp</dc:creator><author>swp</author><pubDate>Sun, 03 May 2015 02:55:00 GMT</pubDate><guid>http://www.cppblog.com/sixleaves/archive/2015/05/03/210526.html</guid><wfw:comment>http://www.cppblog.com/sixleaves/comments/210526.html</wfw:comment><comments>http://www.cppblog.com/sixleaves/archive/2015/05/03/210526.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixleaves/comments/commentRss/210526.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixleaves/services/trackbacks/210526.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 1.类的加载和初始化&nbsp;&nbsp;<a href='http://www.cppblog.com/sixleaves/archive/2015/05/03/210526.html'>阅读全文</a><img src ="http://www.cppblog.com/sixleaves/aggbug/210526.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixleaves/" target="_blank">swp</a> 2015-05-03 10:55 <a href="http://www.cppblog.com/sixleaves/archive/2015/05/03/210526.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OC-EX20类的本质</title><link>http://www.cppblog.com/sixleaves/archive/2015/05/03/210525.html</link><dc:creator>swp</dc:creator><author>swp</author><pubDate>Sun, 03 May 2015 02:20:00 GMT</pubDate><guid>http://www.cppblog.com/sixleaves/archive/2015/05/03/210525.html</guid><wfw:comment>http://www.cppblog.com/sixleaves/comments/210525.html</wfw:comment><comments>http://www.cppblog.com/sixleaves/archive/2015/05/03/210525.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixleaves/comments/commentRss/210525.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixleaves/services/trackbacks/210525.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 类是一种对象，是Class类型的对象，简称类对象&nbsp;&nbsp;<a href='http://www.cppblog.com/sixleaves/archive/2015/05/03/210525.html'>阅读全文</a><img src ="http://www.cppblog.com/sixleaves/aggbug/210525.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixleaves/" target="_blank">swp</a> 2015-05-03 10:20 <a href="http://www.cppblog.com/sixleaves/archive/2015/05/03/210525.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OC-EX19分类</title><link>http://www.cppblog.com/sixleaves/archive/2015/05/03/210523.html</link><dc:creator>swp</dc:creator><author>swp</author><pubDate>Sat, 02 May 2015 16:23:00 GMT</pubDate><guid>http://www.cppblog.com/sixleaves/archive/2015/05/03/210523.html</guid><wfw:comment>http://www.cppblog.com/sixleaves/comments/210523.html</wfw:comment><comments>http://www.cppblog.com/sixleaves/archive/2015/05/03/210523.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixleaves/comments/commentRss/210523.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixleaves/services/trackbacks/210523.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 1.分类的作用、3点使用注意、命名规范&nbsp;&nbsp;<a href='http://www.cppblog.com/sixleaves/archive/2015/05/03/210523.html'>阅读全文</a><img src ="http://www.cppblog.com/sixleaves/aggbug/210523.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixleaves/" target="_blank">swp</a> 2015-05-03 00:23 <a href="http://www.cppblog.com/sixleaves/archive/2015/05/03/210523.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OC-EX18 自定义构造方法的深入理解</title><link>http://www.cppblog.com/sixleaves/archive/2015/05/02/210520.html</link><dc:creator>swp</dc:creator><author>swp</author><pubDate>Sat, 02 May 2015 08:07:00 GMT</pubDate><guid>http://www.cppblog.com/sixleaves/archive/2015/05/02/210520.html</guid><wfw:comment>http://www.cppblog.com/sixleaves/comments/210520.html</wfw:comment><comments>http://www.cppblog.com/sixleaves/archive/2015/05/02/210520.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixleaves/comments/commentRss/210520.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixleaves/services/trackbacks/210520.html</trackback:ping><description><![CDATA[Person.h<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">1</span>&nbsp;#import&nbsp;&lt;Foundation/Foundation.h&gt;<br /><span style="color: #008080; ">2</span>&nbsp;<br /><span style="color: #008080; ">3</span>&nbsp;@interface&nbsp;Person&nbsp;:&nbsp;NSObject<br /><span style="color: #008080; ">4</span>&nbsp;<br /><span style="color: #008080; ">5</span>&nbsp;@property&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;age;<br /><span style="color: #008080; ">6</span>&nbsp;@property&nbsp;NSString&nbsp;*&nbsp;name;<br /><span style="color: #008080; ">7</span>&nbsp;<br /><span style="color: #008080; ">8</span>&nbsp;-&nbsp;(id)initWithName:(NSString&nbsp;*)name&nbsp;andAge:(<span style="color: #0000FF; ">int</span>)age;<br /><span style="color: #008080; ">9</span>&nbsp;@end</div>Person.m<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">&nbsp;1</span>&nbsp;#import&nbsp;"Person.h"<br /><span style="color: #008080; ">&nbsp;2</span>&nbsp;@implementation&nbsp;Person<br /><span style="color: #008080; ">&nbsp;3</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;4</span>&nbsp;-&nbsp;(id)initWithName:(NSString&nbsp;*)name&nbsp;andAge:(<span style="color: #0000FF; ">int</span>)age<br /><span style="color: #008080; ">&nbsp;5</span>&nbsp;{<br /><span style="color: #008080; ">&nbsp;6</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;7</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(self&nbsp;=&nbsp;[super&nbsp;init])&nbsp;{<br /><span style="color: #008080; ">&nbsp;8</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;9</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_name&nbsp;=&nbsp;name;<br /><span style="color: #008080; ">10</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_age&nbsp;=&nbsp;age;<br /><span style="color: #008080; ">11</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">12</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">13</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;self;<br /><span style="color: #008080; ">14</span>&nbsp;}<br /><span style="color: #008080; ">15</span>&nbsp;@end</div>Student.h<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">&nbsp;1</span>&nbsp;#import&nbsp;&lt;Foundation/Foundation.h&gt;<br /><span style="color: #008080; ">&nbsp;2</span>&nbsp;#import&nbsp;"Person.h"<br /><span style="color: #008080; ">&nbsp;3</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;4</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;5</span>&nbsp;@interface&nbsp;Student&nbsp;:&nbsp;Person<br /><span style="color: #008080; ">&nbsp;6</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;7</span>&nbsp;@property&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;no;<br /><span style="color: #008080; ">&nbsp;8</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;9</span>&nbsp;-&nbsp;(id)initWithName:(NSString&nbsp;*)name&nbsp;andAge:(<span style="color: #0000FF; ">int</span>)age&nbsp;andNo:(<span style="color: #0000FF; ">int</span>)no;<br /><span style="color: #008080; ">10</span>&nbsp;<br /><span style="color: #008080; ">11</span>&nbsp;@end</div>Student.m<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">&nbsp;1</span>&nbsp;#import&nbsp;"Student.h"<br /><span style="color: #008080; ">&nbsp;2</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;3</span>&nbsp;@implementation&nbsp;Student<br /><span style="color: #008080; ">&nbsp;4</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">&nbsp;5</span>&nbsp;-&nbsp;(id)initWithName:(NSString&nbsp;*)name&nbsp;andAge:(<span style="color: #0000FF; ">int</span>)age&nbsp;andNo:(<span style="color: #0000FF; ">int</span>)no<br /><span style="color: #008080; ">&nbsp;6</span>&nbsp;{<br /><span style="color: #008080; ">&nbsp;7</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">&nbsp;8</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(self&nbsp;=&nbsp;[super&nbsp;initWithName:name&nbsp;andAge:age])<br /><span style="color: #008080; ">&nbsp;9</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br /><span style="color: #008080; ">10</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_no&nbsp;=&nbsp;no;<br /><span style="color: #008080; ">11</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">12</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;self;<br /><span style="color: #008080; ">13</span>&nbsp;<br /><span style="color: #008080; ">14</span>&nbsp;}<br /><span style="color: #008080; ">15</span>&nbsp;<br /><span style="color: #008080; ">16</span>&nbsp;@end</div>main.m<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">&nbsp;1</span>&nbsp;#import&nbsp;&lt;Foundation/Foundation.h&gt;<br /><span style="color: #008080; ">&nbsp;2</span>&nbsp;#import&nbsp;"Person.h"<br /><span style="color: #008080; ">&nbsp;3</span>&nbsp;#import&nbsp;"Student.h"<br /><span style="color: #008080; ">&nbsp;4</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;5</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;main()<br /><span style="color: #008080; ">&nbsp;6</span>&nbsp;{<br /><span style="color: #008080; ">&nbsp;7</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;8</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Student&nbsp;*s&nbsp;=&nbsp;[[Student&nbsp;alloc]&nbsp;initWithName:@"suweipeng"&nbsp;andAge:24&nbsp;andNo:211106435];<br /><span style="color: #008080; ">&nbsp;9</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NSLog(@"name&nbsp;is:%@&nbsp;,age&nbsp;is:%i,&nbsp;number&nbsp;is:%i",&nbsp;s.name,&nbsp;s.age,&nbsp;s.no);<br /><span style="color: #008080; ">10</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br /><span style="color: #008080; ">11</span>&nbsp;}<br /><span style="color: #008080; ">12</span>&nbsp;<br /><span style="color: #008080; ">13</span>&nbsp;<span style="color: #008000; ">/*</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">14</span>&nbsp;<span style="color: #008000; ">总结:<br /></span><span style="color: #008080; ">15</span>&nbsp;<span style="color: #008000; ">构造方法的设计原则：<br /></span><span style="color: #008080; ">16</span>&nbsp;<span style="color: #008000; ">父类的属性交个父类构造方法处理，子类的成员变量由子类构造方法处理。<br /></span><span style="color: #008080; ">17</span>&nbsp;<span style="color: #008000; "><br /></span><span style="color: #008080; ">18</span>&nbsp;<span style="color: #008000; "><br /></span><span style="color: #008080; ">19</span>&nbsp;<span style="color: #008000; ">@implementation&nbsp;Student&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">20</span>&nbsp;<span style="color: #008000; ">-&nbsp;(id)initWithName:(NSString&nbsp;*)name&nbsp;andAge:(int)age&nbsp;andNo:(int)no<br /></span><span style="color: #008080; ">21</span>&nbsp;<span style="color: #008000; ">{<br /></span><span style="color: #008080; ">22</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">23</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(self&nbsp;=&nbsp;[super&nbsp;initWithName:name&nbsp;andAge:age])<br /></span><span style="color: #008080; ">24</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080; ">25</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_no&nbsp;=&nbsp;no;<br /></span><span style="color: #008080; ">26</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">27</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;self;<br /></span><span style="color: #008080; ">28</span>&nbsp;<span style="color: #008000; "><br /></span><span style="color: #008080; ">29</span>&nbsp;<span style="color: #008000; ">}<br /></span><span style="color: #008080; ">30</span>&nbsp;<span style="color: #008000; ">@end<br /></span><span style="color: #008080; ">31</span>&nbsp;<span style="color: #008000; "><br /></span><span style="color: #008080; ">32</span>&nbsp;<span style="color: #008000; ">如果把这段代码改成如下的坏处是，如果Person类中的age名字变了，在子类中必须得做更改。<br /></span><span style="color: #008080; ">33</span>&nbsp;<span style="color: #008000; ">代码的耦合性强。但如果我们用上面的代码来实现，则子类不用变化，父类怎么变化是父类自己<br /></span><span style="color: #008080; ">34</span>&nbsp;<span style="color: #008000; ">的事情，这其实也就是单一职责~。<br /></span><span style="color: #008080; ">35</span>&nbsp;<span style="color: #008000; "><br /></span><span style="color: #008080; ">36</span>&nbsp;<span style="color: #008000; ">@implementation&nbsp;Student&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">37</span>&nbsp;<span style="color: #008000; ">-&nbsp;(id)initWithName:(NSString&nbsp;*)name&nbsp;andAge:(int)age&nbsp;andNo:(int)no<br /></span><span style="color: #008080; ">38</span>&nbsp;<span style="color: #008000; ">{<br /></span><span style="color: #008080; ">39</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">40</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(self&nbsp;=&nbsp;[super&nbsp;init])<br /></span><span style="color: #008080; ">41</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080; ">42</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_no&nbsp;=&nbsp;no;<br /></span><span style="color: #008080; ">43</span>&nbsp;<span style="color: #008000; "><br /></span><span style="color: #008080; ">44</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.age&nbsp;=&nbsp;age;&nbsp;//&nbsp;本质上是调用setter与getter方法。但是setAge这个方法在<br /></span><span style="color: #008080; ">45</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.no&nbsp;=&nbsp;no;&nbsp;&nbsp;&nbsp;//&nbsp;子类中是不存在的，所以它会沿着superclass指针继续找到其<br /></span><span style="color: #008080; ">46</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;父类，然后调用父类的setAge方法，所以这两句其实也可以改成<br /></span><span style="color: #008080; ">47</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;super.age&nbsp;=&nbsp;age,&nbsp;super.no&nbsp;=&nbsp;no;但不建议这么写。<br /></span><span style="color: #008080; ">48</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;程序的耦合性太强。<br /></span><span style="color: #008080; ">49</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">50</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;self;<br /></span><span style="color: #008080; ">51</span>&nbsp;<span style="color: #008000; ">}<br /></span><span style="color: #008080; ">52</span>&nbsp;<span style="color: #008000; ">@end<br /></span><span style="color: #008080; ">53</span>&nbsp;<span style="color: #008000; "><br /></span><span style="color: #008080; ">54</span>&nbsp;<span style="color: #008000; "></span><span style="color: #008000; ">*/</span></div><img src ="http://www.cppblog.com/sixleaves/aggbug/210520.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixleaves/" target="_blank">swp</a> 2015-05-02 16:07 <a href="http://www.cppblog.com/sixleaves/archive/2015/05/02/210520.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OC-EX17自定义构造方法初识</title><link>http://www.cppblog.com/sixleaves/archive/2015/05/02/210518.html</link><dc:creator>swp</dc:creator><author>swp</author><pubDate>Sat, 02 May 2015 06:29:00 GMT</pubDate><guid>http://www.cppblog.com/sixleaves/archive/2015/05/02/210518.html</guid><wfw:comment>http://www.cppblog.com/sixleaves/comments/210518.html</wfw:comment><comments>http://www.cppblog.com/sixleaves/archive/2015/05/02/210518.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixleaves/comments/commentRss/210518.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixleaves/services/trackbacks/210518.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 掌握自定义构造方法需要注意的规范。&nbsp;&nbsp;<a href='http://www.cppblog.com/sixleaves/archive/2015/05/02/210518.html'>阅读全文</a><img src ="http://www.cppblog.com/sixleaves/aggbug/210518.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixleaves/" target="_blank">swp</a> 2015-05-02 14:29 <a href="http://www.cppblog.com/sixleaves/archive/2015/05/02/210518.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OC-EX16 构造方法的执行过程深入探讨</title><link>http://www.cppblog.com/sixleaves/archive/2015/05/02/210517.html</link><dc:creator>swp</dc:creator><author>swp</author><pubDate>Sat, 02 May 2015 05:57:00 GMT</pubDate><guid>http://www.cppblog.com/sixleaves/archive/2015/05/02/210517.html</guid><wfw:comment>http://www.cppblog.com/sixleaves/comments/210517.html</wfw:comment><comments>http://www.cppblog.com/sixleaves/archive/2015/05/02/210517.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixleaves/comments/commentRss/210517.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixleaves/services/trackbacks/210517.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">&nbsp;1</span>&nbsp;#import&nbsp;&lt;Foundation/Foundation.h&gt;<br /><span style="color: #008080; ">&nbsp;2</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;3</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;4</span>&nbsp;@interface&nbsp;Person&nbsp;:&nbsp;NSObject<br /><span style="color: #008080; ">&nbsp;5</span>&nbsp;@property&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;age;<br /><span style="color: #008080; ">&nbsp;6</span>&nbsp;@end<br /><span style="color: #008080; ">&nbsp;7</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;8</span>&nbsp;@implementation&nbsp;Person<br /><span style="color: #008080; ">&nbsp;9</span>&nbsp;<br /><span style="color: #008080; ">10</span>&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;override</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">11</span>&nbsp;<span style="color: #008000; "></span>-&nbsp;(<span style="color: #0000FF; ">void</span>)init<br /><span style="color: #008080; ">12</span>&nbsp;{<br /><span style="color: #008080; ">13</span>&nbsp;<br /><span style="color: #008080; ">14</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(self&nbsp;=&nbsp;[super&nbsp;init])<br /><span style="color: #008080; ">15</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br /><span style="color: #008080; ">16</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_age&nbsp;=&nbsp;10;<br /><span style="color: #008080; ">17</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">18</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;self;<br /><span style="color: #008080; ">19</span>&nbsp;}<br /><span style="color: #008080; ">20</span>&nbsp;@end<br /><span style="color: #008080; ">21</span>&nbsp;<br /><span style="color: #008080; ">22</span>&nbsp;<br /><span style="color: #008080; ">23</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;main()<br /><span style="color: #008080; ">24</span>&nbsp;{<br /><span style="color: #008080; ">25</span>&nbsp;<br /><span style="color: #008080; ">26</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Person&nbsp;*p&nbsp;=&nbsp;[[Person&nbsp;alloc]&nbsp;init];<br /><span style="color: #008080; ">27</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">/*</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">28</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在为Person类分配完空间，返回未初始化的Person对象后。<br /></span><span style="color: #008080; ">29</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;先调用Person对象的构造方法，但是由于递归的特性，Person构造<br /></span><span style="color: #008080; ">30</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;函数内又调用NSObject的构造函数，所以是先完成NSObject对象的<br /></span><span style="color: #008080; ">31</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;构造方法，再初始化Person自定义的成员变量。<br /></span><span style="color: #008080; ">32</span>&nbsp;<span style="color: #008000; "><br /></span><span style="color: #008080; ">33</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;主要关注下NSObject得构造方法做什么，根据苹果的官方文档。NSObject<br /></span><span style="color: #008080; ">34</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;只有一个成员变量，isa。init的工作就是初始化isa，所以NSObject的构造<br /></span><span style="color: #008080; ">35</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;方法大概是这样子的。<br /></span><span style="color: #008080; ">36</span>&nbsp;<span style="color: #008000; "><br /></span><span style="color: #008080; ">37</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;(id)init<br /></span><span style="color: #008080; ">38</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080; ">39</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isa&nbsp;=&nbsp;[Person&nbsp;class];<br /></span><span style="color: #008080; ">40</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;self<br /></span><span style="color: #008080; ">41</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">42</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">43</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;总结：也就是NSObject的构造函数让isa指针指向了当前对象所在的类。<br /></span><span style="color: #008080; ">44</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">*/</span><br /><span style="color: #008080; ">45</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br /><span style="color: #008080; ">46</span>&nbsp;}</div><img src ="http://www.cppblog.com/sixleaves/aggbug/210517.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixleaves/" target="_blank">swp</a> 2015-05-02 13:57 <a href="http://www.cppblog.com/sixleaves/archive/2015/05/02/210517.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OC-EX15 重写构造方法init-02</title><link>http://www.cppblog.com/sixleaves/archive/2015/05/02/210516.html</link><dc:creator>swp</dc:creator><author>swp</author><pubDate>Sat, 02 May 2015 03:01:00 GMT</pubDate><guid>http://www.cppblog.com/sixleaves/archive/2015/05/02/210516.html</guid><wfw:comment>http://www.cppblog.com/sixleaves/comments/210516.html</wfw:comment><comments>http://www.cppblog.com/sixleaves/archive/2015/05/02/210516.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixleaves/comments/commentRss/210516.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixleaves/services/trackbacks/210516.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 练习重写构造方法并完善总结。&nbsp;&nbsp;<a href='http://www.cppblog.com/sixleaves/archive/2015/05/02/210516.html'>阅读全文</a><img src ="http://www.cppblog.com/sixleaves/aggbug/210516.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixleaves/" target="_blank">swp</a> 2015-05-02 11:01 <a href="http://www.cppblog.com/sixleaves/archive/2015/05/02/210516.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OC-EX14 重写构造方法init-01</title><link>http://www.cppblog.com/sixleaves/archive/2015/05/02/210515.html</link><dc:creator>swp</dc:creator><author>swp</author><pubDate>Sat, 02 May 2015 02:59:00 GMT</pubDate><guid>http://www.cppblog.com/sixleaves/archive/2015/05/02/210515.html</guid><wfw:comment>http://www.cppblog.com/sixleaves/comments/210515.html</wfw:comment><comments>http://www.cppblog.com/sixleaves/archive/2015/05/02/210515.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixleaves/comments/commentRss/210515.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixleaves/services/trackbacks/210515.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 主要介绍了，简单的直接继承自NSObject的类如何重写构造方法&nbsp;&nbsp;<a href='http://www.cppblog.com/sixleaves/archive/2015/05/02/210515.html'>阅读全文</a><img src ="http://www.cppblog.com/sixleaves/aggbug/210515.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixleaves/" target="_blank">swp</a> 2015-05-02 10:59 <a href="http://www.cppblog.com/sixleaves/archive/2015/05/02/210515.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>