首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >InAppSettingsKit与核心数据

InAppSettingsKit与核心数据
EN

Stack Overflow用户
提问于 2013-02-09 00:39:20
回答 1查看 152关注 0票数 0

我目前正在实现一个自定义IASKSettingsStore,用于使用核心数据。您可以看到下面的代码。问题是,这些值的存储速度非常慢。例如,当我在文本字段中键入某项内容时,我知道IASKAppSettingsViewController存储每个更改,但我发现即使是一个更改也存储得非常慢。我怎样才能让这件事更快些?

我要监督什么?提前谢谢。

到目前为止,自定义的如下所示:

代码语言:javascript
复制
@implementation GPSettingsStoreCoreData

@synthesize managedObject = _managedObject;

- (id)initWithManagedObject:(NSManagedObject *)managedObject {
    self = [super init];
    if( self ) {
        _managedObject = managedObject;
    }
    return self;
}

- (id)init
{
    if (self = [super init]) {
        _managedObject = nil;
    }
    return self;
}

- (void)setBool:(BOOL)value forKey:(NSString*)key {
    [self.managedObject setValue:[NSNumber numberWithBool:value] forKey:key];
}

- (void)setFloat:(float)value forKey:(NSString*)key {
    [self.managedObject setValue:[NSNumber numberWithFloat:value] forKey:key];
}

- (void)setDouble:(double)value forKey:(NSString*)key {
    [self.managedObject setValue:[NSNumber numberWithDouble:value] forKey:key];
}

- (void)setInteger:(int)value forKey:(NSString*)key {
    [self.managedObject setValue:[NSNumber numberWithInt:value] forKey:key];
}

- (void)setObject:(id)value forKey:(NSString*)key {
    [self.managedObject setValue:value forKey:key];
}

- (BOOL)boolForKey:(NSString*)key {
    return [[self.managedObject valueForKey:key] boolValue];
}

- (float)floatForKey:(NSString*)key {
    return [[self.managedObject valueForKey:key] floatValue];
}

- (double)doubleForKey:(NSString*)key {
    return [[self.managedObject valueForKey:key] doubleValue];
}

- (int)integerForKey:(NSString*)key {
    return [[self.managedObject valueForKey:key] intValue];
}

- (id)objectForKey:(NSString*)key {
    return [self.managedObject valueForKey:key];
}

@end
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-09 13:29:03

我终于弄明白问题出在哪里了。与InAppSettingsKit无关。我将InAppSettingsKit控制器表示为带有NSFetchedResultsController的视图控制器的模态视图控制器。因此,我在设置控制器中所做的每一项更改都会向NSFetchedResultsController的委托发送一个调用。因此,整个表视图被不必要地重新加载。我为模态视图控制器使用了一个子托管对象对象上下文来解决这个问题。我找到了一篇关于这个主题的非常有用的文章:http://www.cocoanetics.com/2012/07/multi-context-coredata/

到目前为止,我在上面发布的核心数据的自定义IASKSettingsStore运行得很好,如果您愿意,可以将它实现到您自己的项目中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14783629

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档