使用Swift和CoreBluetooth创建静态特性

时间:2016-03-06 22:00:23

标签: swift core-bluetooth

我正在使用Swift 2.2.1构建一个充当蓝牙外围设备的iOS应用程序。

我想宣传一个人的名字作为静态特征,所以我创造了这样的特征:

    // Build the NAME characteristic
if (identity.name != nil) {
    nameCharacteristic =
        CBMutableCharacteristic(type: performerNameCharacteristicUUID,
            properties: ([CBCharacteristicProperties.Read, CBCharacteristicProperties.Broadcast]),
            value: myIdentity?.name?.dataUsingEncoding(NSUTF8StringEncoding,
                allowLossyConversion: false),
            permissions: CBAttributePermissions.Readable)

    characteristicsArray.append(nameCharacteristic!)
}

当程序运行时,会调用addServices 并弹出此异常:

***因未捕获的异常'NSInternalInconsistencyException'而终止应用, 原因:'具有缓存值的特征必须是只读'

对于我可能做错了什么的想法将非常感激!

1 个答案:

答案 0 :(得分:0)

您不能将CBCharacteristicProperties.Broadcast属性与您自己创建的特征一起使用。来自documentation

  
      
  • CBCharacteristicPropertyBroadcast 可以使用特征配置描述符广播特征值。

         

    此属性不允许通过发布的本地特征   addService:类的CBPeripheralManager方法。这意味着   初始化新的时不能使用此属性   CBMutableCharacteristic对象通过   initWithType:properties:value:permissions:方法   CBMutableCharacteristic课程。

  •   
相关问题