ExternalAccessory和NSUserDefaults的奇怪问题

4
我正在使用ExternalAccessory框架并能够将数据传输到外设。

我遇到了一个奇怪的情况,当尝试保存一些值到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];注释掉,一切都可以正常运行...... 有什么建议吗?
1个回答

0

NSUserDefaults在主线程中工作。也许您想使用其他东西,比如一个NSMutableDictionary,然后将其序列化到磁盘中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接