UIImageJPEGRepresentation上的ARC错误

时间:2012-07-29 23:43:25

标签: objective-c nsdata

一直在争夺这一个。基本上,我正在将图像转换为NSData,因此我可以将其发送到服务器。我之前使用过的代码,但由于某种原因,我在此处收到ARC错误。错误落在我声明imageData变量的行上。

注意:myImage将传递给方法。

- (void)uploadImage:(NSImage *)myImage {

     NSData *imageData = UIImageJPEGRepresentation(myImage, 1.0);

     // Do something...

}

我收到错误和两个警告

Error: Implicit conversion of 'int' to 'NSData *' is disallowed with ARC
Warning: Implicit declaration of function 'UIImageJPEGRepresentation' is invalid in C99
Warning: Incompatible integer to pointer conversion intializing 'NSData * __strong' with an expression of type 'int'

有什么想法吗?

1 个答案:

答案 0 :(得分:6)

您可能需要包含相关标题:

#import <UIKit/UIKit.h>

在C99之前,如果你调用编译器没有看到声明的函数,它将编译调用,就像函数被声明为int UIImageJPEGRepresentation()一样。 C99不允许这样,但似乎编译器仍在应用旧的解释(或者编译器处于C99之前的模式;我不确定默认值是什么),因此ARC错误。