黑马程序员 初学OC的一些注意总结3

---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、

<a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ----- -----------------

初学OC的一些注意总结3

1、  类的加载:1、先加载类的父类(查看的类是否加载可以看的类的load类方法,类只加载一次)当

程序启动的时候,就会加载一次所有的类,类加载完后会调用+ load方法,在类第一次被使用的时候,

会调用+initialize方法(相当于的类的初始化)

2、  存在分类时,分类最后加载。分类中有+initialize方法的 原有的类中的+initialize方法会被覆盖,只会

执行一次

3、可以在类的+initialize方法中监听类

4、 Description是一个NSObject方法,它又+(类对象的输出结果) 和 –(实例对象的输出结果) 方

法,返回NSString类型

5、 在description在写NSLog(@”%@”,self);会发生四循环

6、 NSLog(@”%p ”,&p); 打印出p自己的地址,NSLog不能输出中文,否者输不出来

7、 方法调用可以通过[p performSelector:(SEL(@selector[方法名(:也是方法名的一部分)]]];

8、 怎样创建SEL(对方法的一个包装,去找地址,找到地址后就可以调用方法)数据:SEL s = @Selector( 方法名);

9、 知道方法名来调用方法,方法名是字符串,将其转换成SEL的:NSSelectorToString(name);在用47中的方法

10、 每个方法中都有一个SEL即_cmd,表示当前方法不,不能直接输出,必须转换成字符串才能输出

11、内存的两大块:堆(存放动态产生的变量)和栈(存放局部变量);当程序完成后栈中的内容会自动释放,

堆中不会自己释放

12、每个对象中都含有一个引用的计数器(含4个字节),对象new、copy或alloc创建时计数器为1。

Retian +1 release -1,retain 有返回值 对象本身,release没有回值。

13、对象的销毁会调用dealloc(不能直接调用该方法),重写dealloc方法要在最后写[super dealloc]

14、  野指针:指向僵尸对象(不可用对象或内存被释放了的对象)的指针

15、OC不存在空指针错误,空指针不会报错

16、 只要你创建一个对象就责任释放它的引用

17、@class名称 仅仅告诉编译器名称是一个类(只是这样,其余的这个类中有什么是不知道的),这个只

是在循环引用被使用

18、(面试常问)Import和@class的区别:1、性能上:import相当与拷贝,如果一个类被引用的很多,当

某时候类的内容发生改变时,采用import中的全都要改变,而@class就不会,因为它做的只是告诉编译器xxx是一

个类而已,2、当在.m文件要用到该类时,必须用import 。3、@class只会告诉编译器它只是一个类,至于这个类是

怎么样的,里面有些什么,编译器不得而知,但使用Import则会将整个的信息告诉编译器。

19、 (面试常问)循环引用,解决方案是在@property中的参数一个用retain另一个用assign

---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、

<a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ----- -----------------



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值