Ios 是否可以刷新整个核心数据对象?

Ios 是否可以刷新整个核心数据对象?,ios,xcode,core-data,Ios,Xcode,Core Data,我有一个相对较小的核心数据应用程序。它包含使用存储在NSUserDefaults中的某些用户首选项生成的对象。当用户更改其首选项时,是否可以使用更新的首选项重新计算所有当前核心数据元素?是的,只需检查您的代理上的用户首选项是否已更改,然后更新NSManagedObject元素 您可以使用类似的方法来查询保存的对象 // Query your already saved objects and change their values - (void)changeObjects { NSAr

我有一个相对较小的核心数据应用程序。它包含使用存储在NSUserDefaults中的某些用户首选项生成的对象。当用户更改其首选项时,是否可以使用更新的首选项重新计算所有当前核心数据元素?

是的,只需检查您的代理上的用户首选项是否已更改,然后更新NSManagedObject元素

您可以使用类似的方法来查询保存的对象

// Query your already saved objects and change their values
- (void)changeObjects {
    NSArray *array = [CoreDataUtils fetchEntity:@"MyObject" withPredicate:nil inContext:moc];

    for (NSManagedObject *obj in array) {

        [obj setValue:@"newValue" forKey:@"columName"];
    }

    [moc save:nil];
}

我想是的。为什么您认为这是不可能的?当用户更改他们的首选项时,我将如何更改已存储的所有数据?是否有一种方法可以用于迭代所有文档对象?(可能在另一个线程中)。或者我必须擦除所有数据并使用新的首选项重新创建所有内容吗?谢谢,这看起来正是我需要的。我会尝试实施它,如果可行,我会接受答案。:)如果您需要更多帮助,请毫不犹豫地问:D您的代码是否会更新基于“columnName”的其他值?如果您指的是relationshio,则会
+ (NSArray *)fetchEntity:(NSString *)entityName  withPredicate:(NSPredicate *)predicate inContext:(NSManagedObjectContext *)moc
{
    NSFetchRequest* request = [[NSFetchRequest alloc] init];    
    NSEntityDescription* entity = [NSEntityDescription entityForName:entityName inManagedObjectContext:moc];
    [request setEntity:entity];
    [request setPredicate:predicate];

    NSError* error;

    return  [moc executeFetchRequest:request error:&error];
}