返回信息流如题,看到很多代码,在.h文件里需要引用某一个模型的时候,都是在.h文件中写@class XXXX;
然后添加属性@property(nonatomic, strong) XXXX *aXXXX;这样的
然后在.m文件中用到XXXX模型的时候再@import XXXX.h
我想请问:直接在.h中@import不就可以了嘛?既@class又@import,这不是多此一举嘛...还是我没有理解其中的好处...
这是一条镜像帖。来源:北邮人论坛 / mobile-terminal-at / #27708同步于 2015/12/18
该镜像源已超过 30 天没有更新,可能在源站已被删除。
MobileTerminalAT机器人发帖
[问题]iOS中需要某个模型时@class 和@import的区别?
chujunhe1234
2015/12/18镜像同步15 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
@class的意思是 告诉编译器 这个类存在 你就别操心了 别去详细找这个类的头文件了
@import的意思 在M文件里,你真的要用到这个类了,我要引入这个类了,并且要调用他的方法,他的属性,你就得让编译器真的去找到这个类才能编译
有啥用?加快编译速度
如果在头文件里 里 import的越多 会增加编译速度 并且头文件如果有改动 也会牵扯到整个工程的全重编译
如果你在头文件里 用@class
在m文件里用@import 其实 可以在只编译你的这个类的时候 进行编译前连携查找头文件 处理各种编译器的事情
具体其实是编译层面的事情。。。可能也没我说的那么简单。。而且我说的也是含含糊糊的
但是记住一点 @class 只是告诉编译器 你别费劲去索引去查找 保证编译不出错了
所以@class根本并没有import这个类。。。
你真正的要调用这个类,方法,属性的时候,是得import的
相关的 如果愿意深究 有一本书叫 effective objective - c
看看effective oc 2.0吧
能不import 尽量别import
【 在 chujunhe1234 (雪影) 的大作中提到: 】
: 如题,看到很多代码,在.h文件里需要引用某一个模型的时候,都是在.h文件中写@class XXXX;
: 然后添加属性@property(nonatomic, strong) XXXX *aXXXX;这样的
: 然后在.m文件中用到XXXX模型的时候再@import XXXX.h
: ...................
懂了一些了,版主大人好详细的回答啊,多谢指导!!!!
【 在 apocalypse 的大作中提到: 】
: @class的意思是 告诉编译器 这个类存在 你就别操心了 别去详细找这个类的头文件了
: @import的意思 在M文件里,你真的要用到这个类了,我要引入这个类了,并且要调用他的方法,他的属性,你就得让编译器真的去找到这个类才能编译
: 有啥用?加快编译速度
: ...................
苹果现在推swift,那以后OC会不会逐渐被取代了?
【 在 wangxiaobupt 的大作中提到: 】
: 看看effective oc 2.0吧
: 能不import 尽量别import
:
灰常详细的回答。赞!
说用 Swift 的同学,Xcode 会把你搞得欲仙欲死的,哈哈哈。不过 Swift 确实比 OC 好用太多了。
【 在 apocalypse 的大作中提到: 】
: @class的意思是 告诉编译器 这个类存在 你就别操心了 别去详细找这个类的头文件了
: @import的意思 在M文件里,你真的要用到这个类了,我要引入这个类了,并且要调用他的方法,他的属性,你就得让编译器真的去找到这个类才能编译
: 有啥用?加快编译速度
: ...................
直接swift如果毕业swift还是现在这种水平 很可能找不到工作- -
【 在 liuliu2599 (pp2599) 的大作中提到: 】
: 直接学swift吧,OC 会被取代的
: 发自「贵邮」
【 在 liuliu2599 的大作中提到: 】
: 直接学swift吧,OC 会被取代的
: 发自「贵邮」
swift还是有点不太好用。。。或者说,没有想象中好用