我是否可以使用任何代码代替此代码段?
NSString *anError = nil;
id plist;
plist = [NSPropertyListSerialization propertyListFromData:rawCourseArray mutabilityOption:NSPropertyListImmutable format:&format errorDescription:&anError];
if (anError != nil){
[anError release];
}
上面的代码导致内存泄漏,我无法纠正。我尝试发布错误但没有运气。还有另一种方法可以将数组序列化为plist格式而不会泄漏吗?
此致 BX
所以我编辑了代码,它现在看起来像这样但仍然是泄密。它一定是东西。我在......之后加入了循环。
NSError *error = nil;
id plist;
plist = [NSPropertyListSerialization propertyListWithData:rawCourseArray options:/*unused*/0
format:NULL error:&error];
//NSArray *entries = (NSArray *)d;
NSArray *entries = (NSArray *)plist;
//for (eachCourse in rawCourseArray)
for (NSDictionary *entry in entries)
{
//LOOP
}
答案 0 :(得分:1)
您使用的方法已过时,并且即将根据Apple文档弃用,您应该使用propertyListWithData:options:format:error:
代替
答案 1 :(得分:0)
该代码中没有内存泄漏。但是,存在潜在的崩溃。你不应该事实证明-release
错误对象,因为你不拥有它。NSPropertyListSerialization
有一个糟糕的API。请考虑使用+[NSPropertyListSerialization propertyListWithData:options:format:error:]
变体。
你确定这里有内存泄漏吗?重现泄漏所需的最少量代码是什么?