黑马程序员技术交流社区
标题:
@class一些问题
[打印本页]
作者:
yaozeyang_2014
时间:
2014-4-6 15:17
标题:
@class一些问题
本帖最后由 yaozeyang_2014 于 2014-4-6 17:45 编辑
在头文件用这个@class可以声明有这个类,但是.m文件实现又需要用#import,这样一样啊。。对于性能上感觉还是一样要拷贝进来啊,反倒是直接在头文件用import更直接,class好像有点多余。。求解释!!谢谢了
作者:
王雪冬
时间:
2014-4-6 15:34
OC语言用有@class关键字吗?应该没有吧!类的生命应该是
@interface 类名
@end
复制代码
实现应该是
@implementation 类名
@end
复制代码
作者:
脸皮猴
时间:
2014-4-6 15:49
@class可以告诉编译器这个是一个类,为什么要必须有勒?
比如在组合种情况(就是一个类的成员变量中有对象成员变量):
一个学生,学生有一本书
在student.h文件中,如下代码
@interface Student : NSObject
@property(nonatomic, strong, readwrite)Book *book;
@end
假如没有@class Book;对Book声明它是一个类就会报错。
假如在这个.h文件中用#import来引用book.h,确实是可以的,但是student的.m和.h文件都会去导入这个头文件,这个性能就没有用@class那么好了,因为.h文件中只需要知道这是一个类就OK了,而对这个成员变量进行操作的方法都是在.m文件中实现的。所以,.h文件用@class进行声明就可以了,当.m文件中要用到这个类,再进行#import。
作者:
程浩
时间:
2014-4-6 16:29
一般头文件中不用#import Car.h ,因为import的意思就是拷贝,如果改变Car.h,那么有100个类引用了Car.h就要再次拷贝100次,所以最好用@class
但有个特例,那就是父类一定要引用#import
1.@class作用:仅仅是告诉编译器,某个名称是一个类
@class Person
2.开发中引用一个类的规范:
>在点h头文件中,用@class来声明类
>在点m文件中用#import来包含类的所有东西
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2