ARRK! ARC错误:'CFTypeRef'(aka'const void *')为'NSNumber *'是不允许的

我试图将一些Apple代码(从SquareCam例子)转换为ARC。 我有苹果代码被标记为非ARC的编译,它的工作,但我得到的崩溃错误之间的非ARC上下文的ARC图像传递图像 – 所以我试图解决这个问题。

无论如何,我认为除了这一行之外,我已经掌握了所有的ARC工具:

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

这用于CIDetectorImageOrientation键值(CoreImage人脸检测)。 我得到了下面这个ARC错误,我没有尝试解决这个问题。 “imageDataSampleBuffer”的types是CMSampleBufferRef

什么是正确的方式来将CFTypeRef转换为我需要的NSNumber? – 谢谢!

将非Objective-C指针types“CFTypeRef”(又名'const void *')隐式转换为“NSNumber *”,ARC不允许

因为你正在给一个NSObject *分配一个CFTypeRef,编译器会抱怨。 你需要做一个NSNumber的__bridge