c++ - 将 C++ 对象添加到 Objective C 集合 (NSSet) 时出现问题

标签 c++ objective-c qr-code zxing

我正忙着在我的项目中使用 QRCodeReader 实现 ZXing。 QRCodeReader主要是C++和我的项目objective-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 类型。 (我会更新我的其他答案)。

关于c++ - 将 C++ 对象添加到 Objective C 集合 (NSSet) 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7836651/

相关文章:

iPhone - 如何关闭屏幕并继续播放视频?

java - 在网站上动态显示二维码(无需先保存)(Java)

ios - 如何在 iOS 应用程序中使用 SiriKit 集成视觉代码?

c++ - HDF5 H5Dread 内存使用过多

c++ - 使用正则表达式从JSON提取消息内容

c++ - 我的Rabbit Hole模板有问题吗?

c++ - 处理 'Non-blocking'套接字连接

ios - 对展开转场进行故障排除

c++ - 如何在 MacOS Objective C/C++ 中将 UUID 转换为 16 字节的 UInt8 数组

swift - iOS QR 代码扫描仪多次触发操作