OC5_@class关键字
// // ClassB.h // OC5_@class关键字 // // Created by zhangxueming on 15/6/24. // Copyright (c) 2015年 zhangxueming. All rights reserved. // #import <Foundation/Foundation.h> #import "ClassA.h" @interface ClassB : NSObject { ClassA *_a; } @property (copy,nonatomic)NSString *nameB; - (void)printClassB; @end // // ClassB.m // OC5_@class关键字 // // Created by zhangxueming on 15/6/24. // Copyright (c) 2015年 zhangxueming. All rights reserved. // #import "ClassB.h" @implementation ClassB - (void)printClassB { NSLog(@"name = %@", _a.nameA); } @end
// // ClassA.h // OC5_@class关键字 // // Created by zhangxueming on 15/6/24. // Copyright (c) 2015年 zhangxueming. All rights reserved. // #import <Foundation/Foundation.h> //#import "ClassB.h"// @class ClassB; @interface ClassA : NSObject { ClassB *_b; } @property (copy,nonatomic)NSString *nameA; - (void)printClassA; @end // // ClassA.m // OC5_@class关键字 // // Created by zhangxueming on 15/6/24. // Copyright (c) 2015年 zhangxueming. All rights reserved. // #import "ClassA.h" #import "ClassB.h" @implementation ClassA - (void)printClassA { NSLog(@"%@", _b.nameB); } @end
// // main.m // OC5_@class关键字 // // Created by zhangxueming on 15/6/24. // Copyright (c) 2015年 zhangxueming. All rights reserved. // #import <Foundation/Foundation.h> #import "ClassA.h" #import "ClassB.h" //A-->B B-->A //#import 关键字 引用类的类型及类中定义的方法,包含在头文件中,可能导致循环包含,需要用@class打断循环链 //@class 关键字, 只引用类的类型不引用类中的方法,如果要使用类中的方法,需要在对应的.m文件中用#import包含 int main(int argc, const char * argv[]) { @autoreleasepool { } return 0; }