iOSでassignを使ってオブジェクトを修飾する方法を教えてください

iOS では、オブジェクトのプロパティに assign キーワードを付けて修飾することができます。プロパティを assign 型に宣言することで、単純な値型のオブジェクトへの代入とアクセスを実現できます。

たとえば、MyClassというクラスで、assign修飾の必要なプロパティmyPropertyを持っているとします。

@interface MyClass : NSObject

@property (assign, nonatomic) NSInteger myProperty;

@end

それにより、利用時にmyPropertyに対して直接代入やアクセスができるようになります:

MyClass *myObject = [[MyClass alloc] init];
myObject.myProperty = 10;
NSLog(@"myProperty: %ld", myObject.myProperty);

assignで修飾したプロパティは、オブジェクトが解放された際に自動でnilに設定されず、メモリ管理も行われないことに注意が必要。そのため、assignで修飾したオブジェクトが解放された際には、自らメモリ管理を行い、ぶら下がりポインタにならないよう注意する必要がある。

bannerAds