0

UIImage をアプリ デリゲートに保存しようとしています。その UIViewController を初めてロードすると、UIImage が返されます (最初のスクリーン ショットを参照)。

助けて !ここでほぼ2日間立ち往生しました。

ここに画像の説明を入力

しかし、そのコントローラーにリダイレクトすると、UIImage は NSNumber になります。(2 番目のスクリーンショットを参照) ここに画像の説明を入力

コントローラーを離れる前に、次のようにイメージをアプリデリゲートに設定します

UIGraphicsBeginImageContextWithOptions(self.imageView.frame.size,YES, 0.0);
[self.imageView.layer renderInContext:UIGraphicsGetCurrentContext()];

UIImage *resultingImage = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

del.getImage = resultingImage;
4

1 に答える 1

0

この問題は、デバッガーを使用して最も簡単に解決できます。まず、コメントにあるように、プロパティ名を myImage に変更します。次に、UIViewController クラスで、独自のセッターを提供します。

- (void)setMyImage:(UIImage *)myImage
{
    NSLog(@"Image class: %@", NSStringFromClass([myImage class]));
    if([myImage isKindOfClass:[NSNumber class]]) {
        NSLog(@"YIKES: a number!");
    }
    _myImage = myImage; // assumes ARC
}

2 番目の NSLog、またはその両方にブレークポイントを設定します。2 番目のブレークポイントに到達したら、コール スタックを確認すると、誰がそれを設定しているかがわかります。

于 2013-04-11T12:22:24.173 に答える