码迷,mamicode.com
首页 > 其他好文 > 详细

第十一讲.oc学习补充(description方法,)

时间:2015-09-05 13:47:25      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:

一.description方法的使用

    1.默认的description方法

     NSLog函数一旦发现用%@输出某个OC对象时,就会调用这个对象的description方法(这个方法返回值是NSString类型,是OC中的字符串类型),并且将description方法返回的字符串代替%@的位置进行输出.

* description方法的默认实现是返回这样的格式:<类名: 对象的内存地址>,因此上面代码的输出结果为:

技术分享

 

     2.重写description方法

      description方法的默认实现是返回类名和对象的内存地址,这样的话,使用NSLog输出OC对象,意义就不是很大因为我们并不关心对象的内存地址,比较关心的是对象内部的一些成变量的值。因此,会经常重写description方法,覆盖description方法的默认实现.

 

实例分析:

技术分享

注意:

+description方法决定了类对象的输出结果,即类本身.

-description方法决定了实例对象的输出结果,即Person创建的对象。

 

  3.description方法的陷阱

在调用description方法中,不能使用self,会导致程序的死循环.

技术分享

 

 4.在内存管理中,description方法优化内存的解决方案(注意autorelease使用位置)

技术分享

 

    5.相关打印补充扩展

技术分享

 

 

   二.测试题疑难及解析

    1.(判断题的正确结论)

      1>object-c 是单继承.

      2>数组保存的只能是对象

      3>每个对象都有引用计数

      4>为了保证程序不产生额外内存开销,当对象不再被需要以后,应当被销毁

      5>.类目可以为所有类添加方法,同时无论能否拿到类的源码,类目都可以对其扩展

       2.读代码:
            NSString *str=@"hello";
            NSMutableSet *mt=[NSMutableSet setWithObjects:str, nil];
            [mt addObject:str];
            NSLog(@"%lu",mt.count);
           结果是:

  答案:(A)

  •            

  解析:

 

第十一讲.oc学习补充(description方法,)

标签:

原文地址:http://www.cnblogs.com/erdeng/p/4783094.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!