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)'はオブジェクトのコピーを作成しません。 '非原子的な'はプロパティがどのようにアクセスされるか、Googleまたは検索StackOverflowと関連しています。 'retain'はオブジェクトの保持カウントを増加させます。 – RyanM