簡體   English   中英

NSUserdefaults在模擬器上有效,但在設備上無效

[英]NSUserdefaults works on Simulator but not on Device

我想將NSArray保存到NSUSerDefaults 如果我在模擬器上執行此操作,則一切正常,如果在設備上執行,則無效。

NSArray *Test1 = [Daten copy];
NSArray *Test2 = [Kosten copy];

[prefs setObject:Test1 forKey:@"Daten"];
[prefs setObject:Test2 forKey:@"Kosten"];

我正在使用上面的代碼。

prefs是正常的NSUserDefaults ,例如NSUserDefaults *prefs = [NSUserDefaults standartUserDefaults]; ...

Daten&Kosten是可變數組,可以使用。

一切都可以在模擬器上運行,但是在設備上卻無法運行...

有人有主意嗎?

設置/更新后是否要同步它們?

[[NSUserDefaults standardUserDefaults] synchronize];

因為Saurabh要求我發布解決方案,所以我將為其他讀者提供解決方案。

我的問題代碼如下:

[derText1 resignFirstResponder]
[derText2 resignFirstResponder]

NSArray *Test1 = [Daten copy];
NSArray *Test2 = [Kosten copy];

[prefs setObject:Test1 forKey:@"Daten"];
[prefs setObject:Test2 forKey:@"Kosten"];

這在使用XCode 3.2.5的iPhone 4 Simulator上有效,但在安裝iOS 5.x的設備上不起作用。

因此,我已經從Apple下載並安裝了最新的XCode版本。

之后,它也不能與模擬器一起使用。 看來問題僅在於iOS 5軟件。

比起我將代碼更改為:

NSArray *Test1 = [Daten copy];
NSArray *Test2 = [Kosten copy];

[prefs setObject:Test1 forKey:@"Daten"];
[prefs setObject:Test2 forKey:@"Kosten"];

[derText1 resignFirstResponder]
[derText2 resignFirstResponder]

它可以在最新的iOS設備和模擬器上使用。 看一下辭職“第一響應者”條目的位置。 他們似乎必須在保存之后。 我不知道為什么,但是可以。

NSArray *Test1 = [Daten copy];<p>
NSArray *Test2 = [Kosten copy];<p>


NSUserDefaults *prefs;<p>
prefs= [[NSUserDefaults standardUserDefaults]setObject:Test1 forKey:@"Daten"];<p>

[[NSUserDefaults standardUserDefaults] synchronize];

prefs= [[NSUserDefaults standardUserDefaults]setObject:Test2 forKey:@"Kosten"];<p>

[[NSUserDefaults standardUserDefaults] synchronize];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM