NSUserdefaults работает на симуляторе, но не на устройстве - PullRequest
1 голос
/ 10 декабря 2011

Я хотел бы сохранить 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 - изменяемые массивы, с которыми можно работать.

На симуляторе все работает, но на устройстве не работает ...

У кого-нибудь есть идея?

Ответы [ 3 ]

0 голосов
/ 10 декабря 2011

Поскольку Saurabh попросил меня опубликовать свое решение, я сделаю это для других читателей.

Мой код проблемы был следующим:

[derText1 resignFirstResponder]
[derText2 resignFirstResponder]

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

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

Это работало на имитаторе iPhone 4 сXCode 3.2.5, но не на моем устройстве с установленной iOS 5.x.

Итак, я скачал и установил последнюю версию XCode от Apple.

После этого он также не работает с симуляторомтоже.Похоже, проблема только в программном обеспечении 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.Взгляните на позицию отставного Entrys.Кажется, они должны быть после спасения.Я не знаю почему, но это работает.

0 голосов
/ 12 декабря 2011
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];
0 голосов
/ 10 декабря 2011

Вы синхронизируете их после настройки / обновления?

[[NSUserDefaults standardUserDefaults] synchronize];
...