2010-09-02 191 views
1

这个方法在我的类中读取一个先前创建的plist,但是当它发生NSPropertyListSerialization泄漏到处都是。主要是NSDates和NSCFStrings。关于我能做些什么来防止这种情况的任何建议?使用NSPropertyListSerialization时发生内存泄漏

- (id)readPlist:(NSString *)fileName { 

    NSData *plistData; 
    NSString *errorA; 
    NSPropertyListFormat format; 
    id plist; 

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *localizedPath = [[paths objectAtIndex:0] stringByAppendingPathComponent:fileName]; 
    plistData = [NSData dataWithContentsOfFile:localizedPath]; 

    plist = [NSPropertyListSerialization propertyListFromData:plistData mutabilityOption:NSPropertyListImmutable format:&format errorDescription:&errorA]; 
    if (!plist) { 
     DLog(@"Error reading plist from file '%s', error = '%s'", [localizedPath UTF8String], [errorA UTF8String]); 
     [errorA release]; 
    } 

    return plist; 
} 

回答