我有一个包含所有应用程序设置的CoreData记录。当我读取单个记录(使用MagicalRecord)时,我得到一个数组。我的问题是:我可以不使用“[0]”(字段索引),而是使用[@“shopOpens”]来获得记录中各个字段的可解决性?如何在不使用[index]的情况下从单个CoreData记录中获取字段(属性)?
我在想这样的事情,但我不认为这是正确的:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"aMostRecentFlag == 1"]; // find old records
preferenceData = [PreferenceData MR_findAllWithPredicate:predicate inContext:defaultContext]; // source
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
NSMutableDictionary *preferencesDict = [[userDefaults dictionaryForKey:@"preferencesDictionary"] mutableCopy]; // target
// start filling the userDefaults from the last Preferences record
/*
Printing description of preferencesDict: {
apptInterval = 15;
colorScheme = Saori;
servicesType = 1;
shopCloses = 2000;
shopOpens = 900;
showServices = 0;
syncToiCloud = 0;
timeFormat = 12;
}
*/
[preferencesDict setObject: preferenceData.colorScheme forKey:@"shopOpens"];
UPDATE
这是怎么了,我终于想通了,对于那些谁也有类似的问题:
NSPredicate *filter = [NSPredicate predicateWithFormat:@"aMostRecentFlag == 0"]; // find old records
NSFetchRequest *freqest = [PreferenceData MR_requestAllWithPredicate: filter];
[freqest setResultType: NSDictionaryResultType];
NSDictionary *perferenceData = [PreferenceData MR_executeFetchRequest:freqest];
为什么使用Magical Record和NSUserDefaults来存储相同的信息?它看起来像NSUserDefaults就足够了。 –
需要CoreData存储,因为它最终将转到iCloud进行共享。首选项是3个实体之一,也是唯一需要在iCloud中最终修改的商店。 – SpokaneDude