//
// 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;
}
转载于:https://www.cnblogs.com/0515offer/p/4598521.html
相关资源:数据结构—成绩单生成器