我有一個包含所有應用程序設置的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