首页 > 其他 > 详细

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

时间:2015-09-05 13:45:54      阅读:333      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!