2013-04-01 36 views
0

我有一个方法,不使用ARC:我需要在没有ARC的情况下在iOS中释放内存?

-(void)readAppPlist 
{ 
    NSString *plistPath = [self getDataFileDestinationPath]; 
    NSData *plistXML = [[NSFileManager defaultManager] contentsAtPath:plistPath]; 
    NSString *errorDesc = nil; 
    NSPropertyListFormat format; 
    NSMutableDictionary *temp = (NSMutableDictionary *) [NSPropertyListSerialization propertyListFromData:plistXML mutabilityOption:NSPropertyListMutableContainersAndLeaves format:&format errorDescription:&errorDesc]; 
    if (!temp) { 
     NSLog(@"Error reading plist: %@, formatL %d", errorDesc, format); 
    } 
    items = [[temp objectForKey:@"Items"] mutableCopy]; 
} 

根据内存管理在哪里,我需要释放内存的变量plistPath,plistXML,errorDesc,临时的规则?我是否需要另外一种方法,在这里释放它们,或者把它们放到这个类的dealloc全局方法中?

回答

7

假设您遵循命名约定正确(这可能是一个非常大的飞跃),答案将是:

plistPath:没有
plistXML:没有
errorDesc:没有
温度:无

的规则是,如果你alloccopyretain,则必须释放它(new算作alloc

+0

@borrden所以,我不需要在整个应用程序中对这个方法中的变量做任何事情? – ShurupuS

+1

我不会回答这个问题(不是因为我想表达自己的意思,而是因为我希望你真正理解我写的最后一行)。相反,请查找您使用我在最后一行中列出的任何单词的地方。我看到有一次发生,并且需要稍后才能发布。 – borrrden

+0

@borrden谢谢你 – ShurupuS

相关问题