我想測試弧下的屬性屬性。Objective-c屬性沒有在ARC下發布
@interface Class1 : NSObject
@property (nonatomic, strong) NSString *str1;
@property (nonatomic, weak) NSString *str2;
@end
然後,我已經創建下Class1.m(實現文件)的測試方法::
@implementation Class1
- (void)testMethod {
NSString *strt1 = @"exampleString1";
NSString *strt2 = @"exampleString2";
self.str1 = strt1;
self.str2 = strt2;
strt1 = nil;
strt2 = nil;
dispatch_queue_t aQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, QOS_CLASS_BACKGROUND);
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(10 * NSEC_PER_SEC)), aQueue, ^{
[self testMethod2];
});
}
- (void)testMethod2 {
NSLog(self.str1);
NSLog(self.str2);
}
@end
I I已下Class1.h(接口文件)創建了兩個NSString
屬性在testMethod2
方法中設置一個斷點,然後檢查我的NSString
屬性。我假設str2
設置爲零,但我運行代碼後的結果是;
2015年7月3日14:14:04.412 ARCTEST [12303:6239959] exampleString1
2015年7月3日14:14:04.412 ARCTEST [12303:6239959] exampleString2
有人能解釋我爲什麼str2
財產沒有釋放?