0

サブクラスTTphotoviewcontrollerを作成し、画像をカメラ ロールに保存するためのボタンを追加しました。サブクラス ファイルでオーバーライドして作成したものを除いて、ツールバーの他のすべてのボタン (前、次、再生) は正常に動作しています。unrecognized selector sent to instanceボタンをクリックすると恐ろしい「 」エラーが表示されます。

私のサブクラスTTphotoviewcontrollerは、ナビゲーション コントローラーの内部にあり、ナビゲーション コントローラーは のナビゲーション コントローラーの内部にありtabbarcontrollerます。

上部のナビゲーション コントローラーには、アプリ内購入ボタンを備えたビュー コントローラーがあります。購入後、ユーザーはナビゲーション コントローラー内のサブクラスを含む壁紙セクションTTphotoviewcontrollerに移動します (意味があることを願っています)。

すべてのリンカー設定を確認しました。ここにあるコードの一部を使用しました

tabbar - ナビゲーション コントローラー - アプリ内購入 ビュー コントローラー - ナビゲーション コントローラー - サブクラス photoviewcontroller -clickActionItemボタンのセレクター メソッド

次のようにボタンを作成します。

     _clickActionItem = [[UIBarButtonItem alloc] 
                          initWithBarButtonSystemItem:UIBarButtonSystemItemAction 
                          target:self action:@selector(clickActionItem)];

そしてこれで発砲します:

    - (void) clickActionItem: (id)sender
 {
    NSURL *aUrl  = [NSURL URLWithString:[_centerPhoto URLForVersion:TTPhotoVersionLarge]];
                NSData   *data = [NSData dataWithContentsOfURL:aUrl];
                UIImage  *img  = [[UIImage alloc] initWithData:data];

                NSLog(@"photo:class %@", [img class]);

                UIImageWriteToSavedPhotosAlbum(img, nil, nil, nil);
    }
4

1 に答える 1

0

@selector メソッドの後に「:」を付けるのを忘れているという単純な間違いがあると思います。

_clickActionItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:
                    UIBarButtonSystemItemAction
 target:self action:@selector(clickActionItem:)];

私の提案は、呼び出す前にセレクターメソッドを作成していない場合は、常にメソッドの完全な名前をコピーして貼り付けて、このタイプのエラーを減らすことができるということです。

于 2012-08-06T11:32:51.797 に答える