我正忙着在我的项目中使用 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/