Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/119.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 在CoreData中使用NSManagedObject时内存问题_Ios_Iphone_Core Data_Memory Leaks - Fatal编程技术网

Ios 在CoreData中使用NSManagedObject时内存问题

Ios 在CoreData中使用NSManagedObject时内存问题,ios,iphone,core-data,memory-leaks,Ios,Iphone,Core Data,Memory Leaks,我在iPad应用程序中使用核心数据来存储详细信息。应用程序为用户提供了一个选项,可以将保存的详细信息(在CoreData中)以XML的形式备份到其不同的云服务 从ManagedObjectContext获取所有保存的详细信息 遍历数组中的所有项,从这些ManagedObject及其属性值创建格式化的XML字符串 NSString *contentFormat = @""; for(FolderItem *folder in contentArray) { contentFormat =

我在iPad应用程序中使用核心数据来存储详细信息。应用程序为用户提供了一个选项,可以将保存的详细信息(在CoreData中)以XML的形式备份到其不同的云服务

  • 从ManagedObjectContext获取所有保存的详细信息

  • 遍历数组中的所有项,从这些ManagedObject及其属性值创建格式化的XML字符串

     NSString *contentFormat = @"";
    
     for(FolderItem *folder in contentArray) {
      contentFormat = [contentFormat stringByReplacingOccurrencesOfString:@"_Title_"
                                                                 withString:folder.title];
    
        contentFormat = [contentFormat stringByReplacingOccurrencesOfString:@"_Identifier_"
                                                                 withString:folder.identifier];
    
    
    
    contentFormat = [contentFormat stringByReplacingOccurrencesOfString:@"_Shared_"
                                                             withString:[NSString stringWithFormat:@"%d",[folder.shared integerValue]]];
    
    if ([folder.contentUrl length]) {
        contentFormat = [contentFormat stringByReplacingOccurrencesOfString:@"_ContentUrl_"
                                                                 withString:folder.contentUrl];
    
    }else {
        contentFormat = [contentFormat stringByReplacingOccurrencesOfString:@"_ContentUrl_"
                                                                 withString:@""];
    }
    
      }
    
  • 但当处理大量(约15k)CoreData对象时,应用程序会崩溃,错误为“应用程序因内存错误而终止”

    有没有人有同样的经历

    请分享你的建议

    提前谢谢

  • 检查你的iPhone内存。有些应用程序是后台运行的,因此会发生这种情况

  • 检查iPhone中的免费存储空间

  • 请参阅以下链接:


    尽管弧内局部变量一旦超出范围就会释放,但指针可能仍然无法及时释放,尤其是在循环中
    @autoreleasepool{}
    将确保在块结束时释放它们

    因此,尝试将循环体放入
    @autoreleasepool{…}
    ;并将
    NSString*contentFormat=@
    进入
    @autoreleasepool