2013-07-24 26 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。