我有一个广告并可以连接的iOS BLE服务,但现在我想为外设添加一个特性。我想我只是在value属性中添加一个新的NSData对象来创建特性,但每当我在外设管理器上调用addService时,我都会收到这个错误:
file
我添加特征的方法如下:
2015-09-24 09:02:59.456 peripheral[459:27589] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Characteristics with cached values must be read-only'
虽然当我将值项更改为nil时,它再次宣告正常。我确信我有一些简单的东西,但是我仍然相当陌生,所以任何帮助都会很棒。谢谢!
答案 0 :(得分:5)
来自CBMutableCharacteristic
init方法的文档 -
value - 要缓存的特征值。如果为零,则值为 动态,将根据要求提出要求。
这意味着如果您在创建CBMutableCharacteristic
时指定了非零值,那么它就是一个“缓存”特征'并且正如错误消息所示,您无法在以后更改该值。创建nil
时指定CBMutableCharacteristic
- 您可以在didReceiveReadRequest
CBPeripheralManagerDelegate
方法中提供请求时提供值。