我正在将QRCodeReader的ZXing实施到我的项目中。
QRCodeReader主要是C ++,而我的项目目标是C。
我已经设法正确实现它,因此可以将QRCodeReader对象用于我的Objective-C实现(.mm文件)。
但是现在我需要将此C ++对象传递给zxWidController.reader属性。
这意味着我将不得不将C ++对象设置为NSSet对象。
QRCodeReader* qrcodeReader = new QRCodeReader();
NSSet *readers = [[NSSet alloc ] init];
[readers setByAddingObject:(id)qrcodeReader];
widController.readers = readers;
[readers release];
上面的代码可以解决问题。我将C ++对象转换为(id),现在可以正确编译了。但这是正确的方法吗?
这种编程方式是执行此操作的正确方法吗?
还有其他/更好的方法可以实现我的目标吗?
最佳答案
C ++类型不是Objective C类型。您不能向其发送消息,尤其是保留和释放,NSSet会这样做。您要使用同名的Objective C类型。 (我将更新其他答案)。