我正指着行「NSDictionary *dw = [NSDictionary dictionaryWithContentsOfFile:path];
」內存泄漏使用下面的代碼的NSDictionary財產
NSDictionary *_allData;
@property (nonatomic, retain) NSDictionary *allData;
@synthesize allData = _allData;
+ (NSString*)getNSPath
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"alarm.plist"];
return path;
}
- (NSDictionary *)allData
{
NSString *path = [saveAlarm getNSPath];
NSDictionary *dw = [NSDictionary dictionaryWithContentsOfFile:path];
_allData = [NSDictionary dictionaryWithDictionary:dw];
return _allData;
}
的數據在plist中不斷變化的,當我問要檢索的是新出現的財產則泄漏。 任何建議如何清楚?或者如何實現這種沒有泄漏的事情?
謝謝
此解決方案在添加了保留的行上使內存泄漏864字節。不知道爲什麼我應該保留它,當它是類方法。 – Vanya 2010-10-05 10:41:07
啊。當你通過API邊界返回一個對象時,你需要將它作爲自動發佈來返回。我會更新代碼。 – 2010-10-05 10:43:17
您需要保留它,因爲您正在將它存儲在ivar中。否則,該對象將被釋放,而你的伊娃仍然有一個引用它。 – 2010-10-05 10:49:27