gpt4 book ai didi

ios - InAppSettingsKit 和核心数据

转载 作者:行者123 更新时间:2023-11-29 04:08:37 24 4
gpt4 key购买 nike

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

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

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

@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

最佳答案

好吧,我终于弄清楚问题出在哪里了。与 InAppSettingsKit 无关。我将 InAppSettingsKit Controller 作为带有 NSFetchedResultsController 的 View Controller 的模态视图 Controller 。因此,我在设置 Controller 中所做的每个更改都会发送对 NSFetchedResultsController 的委托(delegate)的调用。结果,整个 TableView 被不必要地重新加载。我使用模态视图 Controller 的子托管对象对象上下文解决了这个问题。我发现了一篇关于该主题的非常有用的文章:http://www.cocoanetics.com/2012/07/multi-context-coredata/

到目前为止,我上面发布的用于核心数据的自定义 IASKSettingsStore 运行得很好,因此如果需要,您可以将其实现到您自己的项目中。

关于ios - InAppSettingsKit 和核心数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14783629/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com