-1

アプリ内のカメラロールから選択した画像を保存して読み込もうとしています。読み込みボタンまたは保存ボタンを押すとエラーが発生します

*キャッチされない例外 'NSInvalidArgumentException' が原因でアプリを終了します。理由: '-[UIImageView CGImage]: 認識されないセレクターがインスタンス 0xe637640 に送信されました'

何かご意見は?

AppDelagate .m

- (NSURL *)applicationDocumentsDirectory
{
    return [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory i       nDomains:NSUserDomainMask] lastObject];

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];

画像を保存/ロードしようとしているクラスの.m

- (IBAction)save:(id)sender {
UIImage *myImage = imageView;
NSData *data = UIImagePNGRepresentation(myImage);
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *appDocsDirectory = [paths objectAtIndex:0];


}

- (IBAction)load:(id)sender {
UIImage *myImage = imageView;
NSData *data = UIImagePNGRepresentation(myImage);
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *appDocsDirectory = [paths objectAtIndex:0];
UIImage* thumImage = [UIImage imageWithContentsOfFile: [NSString stringWithFormat:@"%@/%@.png", appDocsDirectory, @"myNewFile"]];
}
4

1 に答える 1

1

このエラーは、メッセージ CGImage が UIImageView 型のオブジェクトに送信されたが、UIImageView が応答しないことを意味します。問題は

UIImage *myImage = imageView;

imageViewの実装をきちんと書いていないので正確には言えませんが、imageViewはUIViewのサブクラスであるUIImageViewであり、UIImageに代入しているとします。試す

UIImage *myImage = [imageView image];

代わりは。私はそれがうまくいくはずだと思います))

ところで、-load で 1 番目と 2 番目のコード文字列が必要なのはなぜですか? それらは不要です:

- (IBAction)load:(id)sender {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *appDocsDirectory = [paths objectAtIndex:0];
UIImage* thumImage = [UIImage imageWithContentsOfFile: [NSString stringWithFormat:@"%@/%@.png", appDocsDirectory, @"myNewFile"]];
}
于 2012-05-04T22:37:56.620 に答える