欢迎光临企业官网建站网站平台,高端网站建设,网站建设公司网站

企业官网建站系统平台

网站建设,建站公司网站,网站建站教程,门户网站

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

作者:jcmp      发布时间:2021-04-12      浏览量: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:只读