Ios &引用;分配给只读属性“;设置核心Bluetooth外围设备管理器服务和特征时出错

Ios &引用;分配给只读属性“;设置核心Bluetooth外围设备管理器服务和特征时出错,ios,objective-c,bluetooth,core-bluetooth,Ios,Objective C,Bluetooth,Core Bluetooth,我正在遵循Apple Core Bluetooth编程指南,试图建立一个外围设备管理器,用于宣传某些数据。我已经根据上的指南编写了以下代码 然而,在线 _myService.characteristics = @[_myCharacteristic]; 我收到一个Xcode错误,上面写着“分配到只读属性”。我不确定问题出在哪里,因为我直接按照说明操作,并且正在正确初始化服务/特性。有人有什么建议吗 .h文件中的_myservice声明: @property (strong, nonatomic

我正在遵循Apple Core Bluetooth编程指南,试图建立一个外围设备管理器,用于宣传某些数据。我已经根据上的指南编写了以下代码

然而,在线

_myService.characteristics = @[_myCharacteristic];
我收到一个Xcode错误,上面写着“分配到只读属性”。我不确定问题出在哪里,因为我直接按照说明操作,并且正在正确初始化服务/特性。有人有什么建议吗

.h文件中的_myservice声明:

@property (strong, nonatomic) CBService *myService;

问题在于这一行:

@property (strong, nonatomic) CBService *myService;
您已将
\u myService
声明为CBS服务,因此就编译器所知,它是不可变的。因此,对于
\u myService
特征
是不可分配的

你应该写信的

CBMutableService* service = [[CBMutableService alloc] initWithType:myConnectUUID primary:YES];
service.characteristics = @[_myCharacteristic];
_myService = service;

错误为clear readonly意味着它不能被分配当你的代码明显客观时不要使用Swift标记-C。我在帖子中打错了;在我的实际代码中,我使用了一个数组,但仍然得到了我描述的错误好的,修复了我的答案。问题一定出在您对
\u myService
的声明中(您的问题中未显示)。我应该如何声明它以使其可变?我的意思是,在《开发者指南》中,它看起来像是可以做你不做的事情。你用的是本地的。很抱歉问了这么多问题,但你能详细说明一下吗?即使我在本地声明myService,它仍然必须声明为CBService,对吗?
CBMutableService* service = [[CBMutableService alloc] initWithType:myConnectUUID primary:YES];
service.characteristics = @[_myCharacteristic];
_myService = service;