ARRK! ARC错误:不允许'CFTypeRef'(又名'const void *')到'NSNumber *'

时间:2012-05-03 21:36:51

标签: ios ios5 automatic-ref-counting

我正在尝试将一些Apple代码(从SquareCam示例)转换为ARC。我将Apple代码标记为非ARC编译并且它有效但我在非ARC上下文之间将图像传递到ARC上下文时遇到了崩溃错误 - 所以我正试图解决这个问题。

无论如何,我认为除了这一行之外我已经完成了所有的ARC处理:

 NSNumber *orientation = CMGetAttachment(imageDataSampleBuffer, kCGImagePropertyOrientation, NULL);

这用于CIDetectorImageOrientation键值(CoreImage人脸检测)。我在下面得到了ARC错误,我尝试过的所有内容都没有解决这个问题。 “imageDataSampleBuffer”的类型为CMSampleBufferRef

将CFTypeRef转换为我需要的NSNumber的正确方法是什么? - 谢谢!

  

非Objective-C指针类型'CFTypeRef'的隐式转换(又名   ARC不允许使用'const void *')到'NSNumber *'

1 个答案:

答案 0 :(得分:1)

因为您正在为NSObject *分配CFTypeRef,所以编译器会抱怨。您需要对NSNumber执行__bridge