我向NSUserDefaults添加一個字典並調用'synchronize'方法,但是當我關閉我的應用並重新打開它時,保存在NSUserDefault中的值爲零。NSUserDefaults沒有被保存在模擬器中,儘管我使用同步
#define kStartTime @"startTime"
#define kEndTime @"endTime"
NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults];
NSString *[email protected]"08:00";
NSString *[email protected]"18:00";
NSDictionary *dict=[[NSDictionary alloc] initWithObjectsAndKeys:startTime,kStartTime,
endTime,kEndTime,
nil];
[defaults registerDefaults:dict];
[defaults synchronize];
而在viewDidLoad
方法我稱之爲:
NSString *startTimeValue=[defaults stringForKey:kStartTime];
的startTimeValue仍然是零。當我重新打開我的simulator.Is UserDefaults應用程序無法在模擬器保存???
我的觀點是當我關閉我的應用程序並在模擬器中重新打開它的值不見了。
我搜索了蘋果文檔後,我得到了這個。
registerDefaults:
。
正如在Apple文檔中所述:將指定字典的內容添加到註冊域。
* 註冊域的內容不寫入磁盤; *每次啓動應用程序時都需要調用此方法。您可以在應用程序的資源目錄中放置一個plist文件,並調用registerDefaults:您從該文件讀入的內容。
所以registerDefaults:
的功能在應用程序設置的默認值,默認值將不會受到synchronize
檢查我更新的答案...只需複製它,然後運行即可獲取值... – Jitendra
嘗試保存整個字典,如:[defaults setValue:dict forKey:@「dictionary」];並像這樣獲取它:NSMutableDictionary * dict = [[NSMutableDictionary alloc] init];和dict = [defaults valueForKey:@「dictionary」]; –
我剛剛編輯你的代碼,並正常工作檢查它...... – Jitendra