定义两个类:Student类,Book类
Student.h
1 //如果是继承某个类,就要导入类的头文件 2 #import <Foundation/Foundation.h> 3 4 //如果只是定义成员变量、属性,用@class,能提高性能,在.m文件要用时再导入 5 @class Book; 6 //#import "Book.h" 7 8 @interface Student:NSObjectt { 9 Book *book; 10 } 11 12 @property Book *book; 13 14 @end
Student.m
#import "Student.h" #import "Book.h"
两种方式的区别:
1、#import方式会包含被引用类的所有信息
2、@class方式只是告诉编译器有这个类的存在
3、若有上百个头文件都用#import了同一个文件,一旦这个文件改了,那全部文件都要重新编译,很耗性能,而@class则不需要
4、对于循环以来关系,比如A类引用B类,同时B类引用A类,用#import会报错
通常.h文件用@class,.m文件用#import
浙公网安备 33010602011771号