3

しばらくこれと戦ってきました。基本的には、画像をNSDataに変換して、サーバーに送信できるようにします。以前に使用したコードですが、何らかの理由でこれでARCエラーが発生します。エラーは、imageData変数を宣言した行に表示されます。

注:myImageはメソッドに渡されます。

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

     NSData *imageData = UIImageJPEGRepresentation(myImage, 1.0);

     // Do something...

}

エラーと2つの警告が表示されます

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'

何か案は?

4

1 に答える 1

7

関連するヘッダーを含める必要がある場合があります。

#import <UIKit/UIKit.h>

C99より前では、コンパイラが宣言を認識していない関数を呼び出すと、関数がとして宣言されているかのように呼び出しがコンパイルされint UIImageJPEGRepresentation()ます。C99はそれを許可していませんが、コンパイラはまだ古い解釈を適用しているようです(または、コンパイラはC99より前のモードです。デフォルトが何であるかはわかりません)。したがって、ARCエラーです。

于 2012-07-29T23:46:36.050 に答える