我想在ObjC中通過引用傳遞。 下面是這種情況的說明:在ObjC中傳遞引用的問題
// MainClass.h
@interface MainClass
{
Board *board;
OtherClass *other;
}
@end
// MainClass.m
@implementation MainClass
- (id)init
{
if (self = [super init])
{
board = [[Board alloc] init];
other = [[OtherClass alloc] initOtherClassWithBoard: board];
}
return self
}
@end
// Other class.h
@interface OtherClass
{
Board *refBoard;
}
- (void)initOtherClassWithBoard: (Board*)ref;
@end
@implementation OtherClass
- (id)initOtherClassWithBoard: (Board*)ref
{
if (self = [super init])
{
refBoard = ref;
}
return self;
}
@end
所以我的問題是做我的OtherClass從MainClass保持參照板? 或OtherClass的董事會是一個副本,但不是一個參考。 如果我想做一個參考,那麼我應該如何改變它?
編輯: 如果我添加這兩個類
@property (nonatomic, retain) Board *board;
如果我這樣做呢? @property(nonatomic,retain)? –
@CadrickLoh - '@property(nonatomic,retain)'不會創建對象的副本。 'nonatomic'與如何訪問屬性有關,谷歌或搜索StackOverflow獲取更多信息。 '保留'增加對象的保留計數。 – RyanM