Deployment Target | メモリ管理方法 |
---|---|
iOS6未満 | ARC管理外 |
iOS6以上 | ARC管理下 |
iOS6未満(ARC管理外)とiOS6以上(ARC管理下)の両方の環境に対応させたコード例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
@interface Foo() #if OS_OBJECT_USE_OBJC @property (nonatomic, strong) dispatch_semaphore_t semaphore; #else @property (nonatomic, assign) dispatch_semaphore_t semaphore; #endif @end @implementation Foo - (id)init { self = [super init]; if (self) { _semaphore = dispatch_semaphore_create(1); } return self; } - (void)dealloc { #if !OS_OBJECT_USE_OBJC dispatch_release(self.semaphore); #endif // [super dealloc]; は ARC が自動的に挿入する } @end |