Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/97.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 自动释放导致系统崩溃_Ios_Objective C_Memory Management_Autorelease - Fatal编程技术网

Ios 自动释放导致系统崩溃

Ios 自动释放导致系统崩溃,ios,objective-c,memory-management,autorelease,Ios,Objective C,Memory Management,Autorelease,我有不带ARC的方法来读取plist文件内容: -(void)readAppFile { NSString *plistPath = [self getDataFileDestinationPath]; NSData *plistXML = [[NSFileManager defaultManager] contentsAtPath:plistPath]; NSString *errorDesc = nil; NSPropertyListFormat format

我有不带ARC的方法来读取plist文件内容:

-(void)readAppFile
{
    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: %@, format: %d", errorDesc, format);
    }
    items = [[temp objectForKey:@"Items"] mutableCopy];
    NSLog(@"Read file!");
}

我这里有一个很大的内存泄漏!因此,我将代码的末尾替换为这一行
items=[[temp objectForKey:@“items”]mutableCopy]autorelease]但是现在我有
线程1:EXC\u BAD\u访问权限(code=1,addres=0x6000000008)
。今天是我不知道如何使用此方法的第二天。

在重新分配之前,请尝试显式释放
项:

if (items != nil) [items release];
items = [[temp objectForKey:@"Items"] mutableCopy];

内存泄漏,但在哪里?plistPath,plistXML,format,temp,items…哪一个?发布
items
,而不是整个
objectForKey:
thing@AnoopVaidya项目-这是我必须释放的唯一一个对象。但是我不明白-自动释放有什么问题。@CodaFi对我来说现在很难理解我必须在哪里释放它。。它是全局变量。。我不知道如何正确地释放它,所以我尝试添加自动释放。。但是在dealloc中突然发送
release
if(items!=nil)
是多余的。将
-release
(或任何其他方法)发送到
nil
始终是安全的。