我正在使用 ExternalAccessory
FW 并能够将数据传递到外围设备。
我遇到了一个奇怪的情况,当我试图将一些值保存到 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];
一切正常...
有什么想法吗?
最佳答案
NSUserDefaults 在主线程中工作。也许您想使用不同的东西,也许是一个 NSMutableDictionary,然后将其序列化到磁盘。
关于iphone - ExternalAccessory 和 NSUserDefaults 奇怪的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17836552/