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で修飾したオブジェクトが解放された際には、自らメモリ管理を行い、ぶら下がりポインタにならないよう注意する必要がある。