在ClassB中使用ClassA ClassA:
#import
@interface ClassA : NSObject
{
int num;
}
@property int num;
//自动封装属性
@end
@implementation ClassA
@synthesize num;
@end
ClassB:
#import "ClassA.h"
//@class ClassA;
//如果没有调用ClassA中的方法,而只是用到了属性,就不需要import *.h文件,只需要使用@class 引入类,速度更快
@interface ClassB : NSObject
{
ClassA *a;
}
-(void)initA:(ClassA *) aa;
-(void)printA;
@end
@implementation ClassB
-(void)initA:(ClassA *)aa
{
a=[ClassA new];
[a setNum:aa.num];
//不直接赋值,是因为传过来的是指针,如果外部的ClassA对象被修改,这里的值会受到影响
}
-(void)printA
{
NSLog(@"num的值为%d",a.num);
}
@end
使用:
#import
#import "ClassB.h"
//导入头文件
int main (int argc, const char * argv[])
{
@autoreleasepool {
ClassA *a=[ClassA new];
a.num=5;
NSLog(@"%d",a.num);
ClassB *b=[ClassB new];
[b initA:a];
[b printA];
}
return 0;
}