本文为大地瓜原创,欢迎知识共享,转载请注明出处。
虽然你不注明出处我也没什么精力和你计较。
作者微信号:christgreenlaw
property修饰符
- 相同类型的修饰符不能同时使用。
- 不同类型的修饰符可以结合使用,中间用逗号隔开
- iOS开发中只要写了property,马上写上nonatomic
readonly 只生成getter
readwrite getter和setter都会生成,什么都不写默认就是这样
getter 给getter起名
setter 给setter起名//这两个可以同时用,它们不是互斥关系
retain 会生成内存管理的方法
assign 不会生成内存管理的方法,默认就是这个
@class指令
#import是一个预编译指令,会将""中的内容拷贝到import所在的位置
#import有一个特点,若""中的文件发生变化,则会重新拷贝一次
@class只是告诉编译器,@class后面是一个类,而不会做任何拷贝操作
但也正是由于它没有做拷贝操作,编译器并不知道这个类都有什么属性和方法,需要在.m中正式使用时再#import一下
在类似于.h的情况下,如果只需要使用类型而不需要使用实例对象做一些操作的话,可以使用@class来提升编译效率
@class也可以用来处理循环拷贝的问题,若A.h中import B.h, B.h中import A.h,则会循环拷贝。此时可以在.h中使用@class,.m中使用import,既提升编译效率,又不会引用循环。
实际上,建议:任何时候优先考虑@class,在真正需要使用某个类做操作时再使用import。尽可能提高效率。