我解析文件的内容,以便在上下文中创建一组NSManagedObject
并保存它们。这是我做的方法:@autoreleasepool在我的场景和ARC中有意义吗?
- (BOOL)getEntitiesFromFileInContext:(NSManagedObjectContext *)context
{
BOOL result = YES;
NSMutableArray *entities = [[NSMutableArray alloc] init];
NSString *entitiesFileContent = [FilesManagerHelper readFile:fileName];
if ([entitiesFileContent isEqualToString:@""]) {
result = NO;
}
else {
@autoreleasepool {
entities = [self parseEntitiesFileContent:entitiesFileContent inContext:context];
// If entities.count > 0, some operations here
}
// Save context and reset
[self saveContext:context];
[self clearContext:context];
}
return result;
}
在parseEntitiesFileContent:inContext:
方法我插入NSManagedObject
对象在我提供的背景下,我也把它们添加到entities
阵列。
我在@autoreleasepool
中执行此操作,因为我找到了一个例子,但我不确定它是否真的有必要...有人可以解释我使用@autoreleasepool
而不使用它的区别是什么?
非常感谢
编辑:如若entities
阵列@autoreleasepool
块内进行定义?
我会期待一个静态分析器警告,说'实体永远不会被读取'。我错过了什么 - 在这个方法的范围内,“实体”的目的是什么? – Bamsworld
@Bamsworld你是对的,我错过了一些代码。编辑代码片段。 – AppsDev
谢谢澄清。 – Bamsworld