HTTPFileUploadを試させて頂くが、コンパイルエラーになる。
まず、HTTPFileUpload.hは、UIKitをインポートしないとUIImageが解決出来ない。
#import <UIKit/UIKit.h>
まぁこれは簡単だ。更に、HTTPFileUpload.hでもう一個ビルドエラーが。
"Existing instance variable 'delegate_' for property 'delegate' with assign attribute must be __unsafe_unretained"
というエラーが出る。何のこっちゃ。どうも、Objective-Cでのメモリ管理に関連するらしい。ARC (Automatic Reference Counting)を使っている場合は問題が出るとか。とりあえず、idを@propertyするなら@privateに書いちゃいかんって事らしい。
@interface HTTPFileUpload : NSObject
{
@private
id <HTTPFileUploadDelegate> delegate_; // ← つまりこれが問題
NSMutableArray *postStrings_, *postImages_;
NSMutableData *resultData_;
}
@property(nonatomic, assign) id <HTTPFileUploadDelegate> delegate;
とりあえず上の行を削除する。この後はHTTPFileUload.mでビルドエラーの嵐。
'release' is unavailable: not available in automatic reference counting mode
これもARCだな。ふむふむ。ARCは参照カウントをマニュアルで操作するreleaseだのretainだのを呼んだらいかんらしいからな。下記を参照させて頂く。
とりあえず、reelaseだのautoreleaseだのでエラーが出まくるので、そこを全部削除するとビルドは通った。あと、まだちょこちょこワーニングが。
Values of type 'NSUInteger' should not be used as format arguments; add an explicit cast to 'unsigned long' instead
これ、言うとおりに[postData length]からunsigned longへのキャストを入れると、今度はフォーマットがintを要求しているのに何事ぢゃ!と怒るので、結局intへキャストするのが正解。postWithUriメソッドの最終行について下記のワーニングが出るが、とりあえず無視する。
Expression result unused
以上で一応エラーとワーニングの嵐は落ち着く。
0 件のコメント:
コメントを投稿