Ios 在CoreData中使用NSManagedObject时内存问题
我在iPad应用程序中使用核心数据来存储详细信息。应用程序为用户提供了一个选项,可以将保存的详细信息(在CoreData中)以XML的形式备份到其不同的云服务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 =
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:@""];
}
}
尽管弧内局部变量一旦超出范围就会释放,但指针可能仍然无法及时释放,尤其是在循环中
@autoreleasepool{}
将确保在块结束时释放它们
因此,尝试将循环体放入@autoreleasepool{…}
;并将NSString*contentFormat=@
进入@autoreleasepool
块