2013-07-24 2 views
4

Я работаю с ExternalAccessory FW и способен передавать данные на периферийное устройство.ExternalAccessory и NSUserDefaults странный вопрос

Я столкнулся с странной ситуацией, при попытке сохранить некоторое значение NSUserDefaults я получаю это (выглядит как) неродственная ошибка:

UISupportedExternalAccessoryProtocols = com.xxxxx.yyy.zz 
2013-07-24 17:01:39.181 myApp[791:907] ERROR - opening session failed 
2013-07-24 17:01:39.182 myApp[791:907] ERROR - /SourceCache/ExternalAccessory/ExternalAccessory-213.3/EASession.m:-[EASession dealloc] - 137 unable to close session for _accessory=0x2088cdb0 and sessionID=65536 

и связь с периферией мертво.

Код, который пишет NSUserDefaults:

NSInteger transactionId = [[NSUserDefaults standardUserDefaults] integerForKey:kTransactionId]; 
transactionId = transactionId % NSIntegerMax + 1; 
[[NSUserDefaults standardUserDefaults] setInteger:transactionId forKey:kTransactionId]; 
[[NSUserDefaults standardUserDefaults] synchronize]; 

Если я закомментировать [[NSUserDefaults standardUserDefaults] setInteger:transactionId forKey:kTransactionId]; все работает просто отлично ...

Любая идея?

ответ

0

NSUserDefaults работает в основном потоке. Возможно, вы хотите использовать что-то другое, возможно, NSMutableDictionary, который затем сериализуется на диск.

Смежные вопросы