我的问题是关于何时何地使用@class编译器指令.
如果我通过创建一个新文件并对其进行子类化来继承UIVIEwController,我是否应该在MyVIEwController.h或.m的头文件中使用@class MyVIEwController并将其放入实际使用控制器的文件的标题中(如同一个controller将实例化另一个控制器类型并将其推送到堆栈中.或者我是否需要使用它?是否只有在我实际向我的类中添加新属性时才需要超出库存实现中的属性?好像我把@class放到了所有地方只是为了确保我没有得到错误,但我不需要从根本上理解我什么时候需要它.
谢谢!
解决方法 您可以在.h中使用它来通知自定义类,而不包括自定义类的.h.例:
两个自定义类:汽车和车轮
Car.h----------------@interface Car : NSObject {}- (voID)adDWheel:(Wheel*)newWheel;@end
Car.h不知道类’Wheel’所以它会抛出一个错误,所以你可以像这样导入Wheel.h:
Car.h----------------#import "Wheel.h"@interface Car : NSObject {}- (voID)adDWheel:(Wheel*)newWheel;@end
但你也不需要这样做. Car.h不需要知道关于Wheel类的任何信息,它只需要知道它存在.所以你使用的是@class只是说“嘿,这个类存在.请相信我的话.”
Car.h----------------@class Wheel;@interface Car : NSObject {}- (voID)adDWheel:(Wheel*)newWheel;@end
然后在Car.m内部,当你真正需要了解Wheel类(属性,方法等)时,你应该在那里导入Wheel.h.
总结以上是内存溢出为你收集整理的iphone – 何时何地放置@class声明全部内容,希望文章能够帮你解决iphone – 何时何地放置@class声明所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)