我在viewDidLoad
方法中有这段代码来检查UITableView
部分的名称。我需要的是一种在同一方法中创建类似循环的方法,以便能够从所有存储对象中知道属性值。核心数据实体在名为ToDoItem的NSManagedObject
子类中定义。
for(int i = 0; i < [[self.fetchedResultsController sections] count]; i++)
{
id <NSFetchedResultsSectionInfo> theSection = [[self.fetchedResultsController sections]objectAtIndex:i];
NSString *sectionName = [theSection name];
if ([sectionName isEqualToString:@"0"])
{
haySeccion0 = @"si";
}
}
答案 0 :(得分:0)
听起来您想要检查所有对象,然后根据对象上的属性对某个部分执行操作。
为什么不枚举所有对象,然后使用indexPathForObject来检索节。
目前尚不清楚为什么需要按部分进行此部分..
答案 1 :(得分:0)
我的建议是:
仅获取您需要的内容:
NSManagedObjectContext* context = [[NSManagedObjectContext alloc] init] //or use your current context;
context.persistentStoreCoordinator = //Get the coordinator
NSExpressionDescription* objectIdDesc = [NSExpressionDescription new];
objectIdDesc.name = @"objectID";
objectIdDesc.expression = [NSExpression expressionForEvaluatedObject];
objectIdDesc.expressionResultType = NSObjectIDAttributeType;
NSFetchRequest* r = [NSFetchRequest fetchRequestWithEntityName:@"EntityName"];
[r setResultType:NSDictionaryResultType];
[r setPropertiesToFetch:@[objectIdDesc,@"borrar"]];
[r setPredicate:[NSPredicate predicateWithFormat:@"has0Section = %@",@"si"]];
NSError* error = nil;
NSArray* results = [context executeFetchRequest:r error:&error];
//Error handling ...
结果现在将包含第0部分及其borrar
属性的所有对象(如字典),执行您喜欢的任何逻辑。
您可以在后台执行此代码并将map
设置为视图控制器的某个私有变量(在需要时同步某些锁定)。