Objective c NSPropertyListSerialization替代方案?

Objective c NSPropertyListSerialization替代方案?,objective-c,serialization,plist,Objective C,Serialization,Plist,是否有任何代码可以替代此代码段 NSString *anError = nil; id plist; plist = [NSPropertyListSerialization propertyListFromData:rawCourseArray mutabilityOption:NSPropertyListImmutable format:&format errorDescription:&anError]; if (anError != nil){ [anErro

是否有任何代码可以替代此代码段

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
        }
该代码中没有内存泄漏。然而,有一个潜在的崩溃。您不应该
-释放
错误对象,因为您不拥有它。事实证明,
NSPropertyListSerialization
有一个糟糕的API。请考虑使用该变体。


你确定这里有内存泄漏吗?复制泄漏所需的最小代码量是多少?

根据apple文档,您使用的方法已经过时,即将被弃用,您应该改用
propertyListWithData:options:format:error:


来自苹果文档:“返回时的errorString,如果转换成功,则errorString为零。如果转换失败,则返回时包含一个描述错误性质的字符串。如果收到字符串,则必须将其释放。”@Zaky wow,我已更正。谢谢,我正在更新我的答案。这是我几周前发布的一个问题,显示了泄漏性能工具中的泄漏:也许propertyListWithData可以阻止泄漏。。。我试试看。谢谢