OC_对象

2017-03-12  本文已影响0人  Init_ZSJ

序言:翻阅资料,学习,探究,总结,借鉴,谢谢探路者,我只是个搬运工。
参考、转发资料:
http://blog.csdn.net/wzzvictory/article/details/8592492
http://www.cnblogs.com/wsnb/p/6163373.html
http://www.th7.cn/Program/IOS/201509/563428.shtml

1. 类的本质

类的本质其实也是个对象(类对象)。

2. 类的存储位置

在程序启动的时候会加载所有的类和分类,并调用所有类和分类的+load方法(只会调用一次),将所有类的代码加载到内存中, 放到代码区。

3. 类的内部和实现过程

在第一次使用某个类时(比如创建对象等),会调用一次+initialize方法, 无论使用多少次这个类都只会调用一次。
我们都知道对象分为两部分,对象的申明和对象的创建。

4. 扩充知识

SEL sel = @selector(setAge:);    
Person *p = [Person new];   
 // 判断p对象中有没有实现-号开头的setAge:方法    
// 如果P对象实现了setAge:方法那么就会返回YES  
// 如果P对象没有实现setAge:方法那么就会返回NO   
BOOL flag = [p respondsToSelector:sel];   
NSLog(@"flag = %i", flag);      
// respondsToSelector注意点: 如果是通过一个对象来调用该方法那么会判断该对象有没有实现-号开头的方法   
SEL sel1 = @selector(test);    
flag = [p respondsToSelector:sel1];    
NSLog(@"flag = %i", flag);       
// 如果是通过类来调用该方法, 那么会判断该类有没有实现+号开头的方法   
flag = [Person respondsToSelector:sel1];    
NSLog(@"flag = %i", flag);
上一篇 下一篇

猜你喜欢

热点阅读