実際、私はブロックからメソッドを呼び出す方法を見回してきました。iPhoneの写真アプリからすべての画像を取得しようとしています。コードは次のとおりです。
void (^assetGroupEnumerator)(ALAssetsGroup *, BOOL *) = ^(ALAssetsGroup *group, BOOL *stop)
if(group != nil) {
[self.groups addObject:group];
[group enumerateAssetsUsingBlock:selectionBlock];
}
};
[library enumerateGroupsWithTypes:groupTypes
usingBlock:assetGroupEnumerator
failureBlock:^(NSError *error) {NSLog(@"A problem occurred");}];
selectionBlockで...ユーザーが画像をクリックしたときにアクションを追加したいだけです。だから私はこのコードを試しました..
[imgView addTarget:self action:@selector(buttonPressed) forControlEvents:UIControlEventTouchUpInside];
buttonPressedも同じ.mファイルで定義されています。
- (void) buttonPressed: (id) sender {
UIAlertView* av = [[UIAlertView alloc] initWithTitle:@"Howdy!"
message:@"You tapped me."
delegate:nil
cancelButtonTitle:@"Cool"
otherButtonTitles:nil];
[av show];
}
しかし、selectionBlockで、「'UIImageView'の表示された@interfaceがセレクター'addTarget:action:forControlEvents'を宣言していません」というメッセージが表示されます。
私はiOSプログラミングに不慣れです。ですから、どんな助けでも非常にありがたいです!