iOS 类方法与实例方法 (+方法、-方法)

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

+ (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:只读

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,263评论 30 472
  • 37.cocoa内存管理规则 1)当你使用new,alloc或copy方法创建一个对象时,该对象的保留计数器值为1...
    如风家的秘密阅读 912评论 0 4
  • 心烦的时候,最好选择沉默 心烦,是自己的,不是别人的;是偶然的,也是必然的;它,只是人的一种心情,不是人的...
    sj禁阅读 295评论 0 1
  • 这两天西安的气温又回复到了柏油路上煎鸡蛋的水平,刚在科目二半坡起步被刷下的我坐在地铁站里不知道干什么好。人在无聊时...
    考试不如烤鸡翅阅读 248评论 0 0