4
嗨我正在處理內存泄漏,但我不知道它是什麼問題(我沒有太多的儀器經驗,所以請原諒,如果我問一些明顯的問題) 。NSString stringwithwith內存泄漏與ARC
基本上我有兩個字符串作爲在我的類屬性,第一個將要顯示給用戶的主隊列被檢索,並且不立即需要在背景隊列中檢索到的一個:
在stringWithFormat問題與佔位符做@「%@ ...」,因爲如果我只是把@‘測試’:
@property (nonatomic, strong) NSString *stringDefaultLocationAddress;
@property (nonatomic, strong) NSString *stringCurrentLocationAddress;
-(void)viewDidLoad{
...
dispatch_async(idQueue, ^(void) {
[self recuperaDireccionActualEnBackground:currentUserLocation.coordinate];
});
}
- (void)dealloc{
[self removeObserver:self forKeyPath:@"playerProfileNeedsUpdate"];
self.stringCurrentLocationAddress = nil;
self.stringDefaultLocationAddress = nil;
}
但我得到這個泄漏的儀器那時泄漏消失了,但我不知道爲什麼泄漏這一點,我想了解它。
在此先感謝。
如果你只是放了'@「Test」''''''''''''''''''''''''''''''消息' - [NSString copy]'當它是可變的('NSMutableString'的子類)時產生一個副本,或者當它是不可變的時候保留('NSString'的子類)。因此,在聲明'NSString'時總是複製。複製可變字符串可確保客戶端不會遠程更改保存在屬性中的值。如果您使用的是iOS 5,則「CLGeocoder」中有地理編碼和反向地理編碼,您不需要庫。你不需要在'dealloc'中刪除變量,ARC已經釋放了這些屬性。 – Jano
我感謝你@Jano的回覆,我剛剛添加了COPY消息,現在我沒有內存泄漏,謝謝你的迴應。 – Rubs
我的意思是聲明:@property(nonatomic,COPY)NSString * stringDefaultLocationAddress; – Rubs