0

我有子类TTphotoviewcontroller并添加了一个用于将图像保存到相机胶卷的按钮。工具栏上的所有其他按钮都可以正常工作(上一个、下一个和播放),除了我通过在子类文件中覆盖创建的那个。unrecognized selector sent to instance当我单击按钮时,我收到了可怕的“ ”错误。

我的子类TTphotoviewcontroller位于导航控制器内,而导航控制器又位于tabbarcontroller.

顶部导航控制器有一个带有应用内购买按钮的视图控制器。购买后,用户进入TTphotoviewcontroller导航控制器内包含子类的壁纸部分(希望这是有道理的)。

我检查了所有的链接器设置。我使用了一些可以在这里找到的代码

标签栏 - 导航控制器 - 应用内购买视图控制器 - 导航控制器 - 子类 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 回答