时间: 2020-08-25|19次围观|0 条评论

先来一发代码,捋一捋(+方法就是类方法,-方法就是实例方法):

+ (void)thisIsAClassMethod; // 类方法,不需要实例化对象就可以调用- (void)thisIsAnInstanceMethod; // 实例方法,必须通过实例化的对象调用// 对象的初始化 OC中以消息机制传递信息,发送 alloc 消息给类分配内存空间,发送 init 消息生成对象,指针指向对象本身。ClassName *obj = [[ClassName alloc] init];

类方法:
1、类方法可以调用类方法;
2、类方法不可以调用实例方法,但是类方法可以通过创建对象来访问实例方法;
3、类方法不可以使用实例变量。(可以使用self ,因为 self 不是实例变量。)
4、类方法作为消息,可以发送到类或者对象里面去(就是可以通过类或者对象调用类方法)

实例方法里面的 self ,是对象的首地址。
类方法里面的 self ,是 class 。

使用过程中既可以使用新定义的方法名,也可以使用以前的方法(点表示法)
属性特征:readwrite readonly assign retain copy nonatomic

assign:默认行为,使用 @property int num 就是使用了 assign 行为,就是给实例变量赋了一个值
retain:实现了两个功能,一个是保留了赋值时传递的对象,一个是赋值前释放了以前的值,使用时加上 @property (retain) int num;
copy:发送一条复制的消息给被传递的对象,保留它,并释放任何以前的值;
nonatomic:非原子访问器,加上后可以保证属性在被一个线程使用时不被另一个线程访问,不存在 atomic 关键字,默认情况下,所有方法都是自动合成的。(类似Java中的线程锁机制 synchronised)
readwrite:可读写
readonly:只读

文章转载于:https://www.jianshu.com/p/c67fbf9d79d1

原著是一个有趣的人,若有侵权,请通知删除

本博客所有文章如无特别注明均为原创。
复制或转载请以超链接形式注明转自起风了,原文地址《iOS 类方法与实例方法 (+方法、-方法)
   

还没有人抢沙发呢~