我正在尝试创建 NSInvocationOperation 以便它应该使用参数调用对象的方法
- (void) getImages: (NSRange) bounds
{
NSOperationQueue *queue = [NSOperationQueue new];
NSArray * params = [NSArray arrayWithObjects:
[[NSNumber alloc] initWithInt: bounds.location],
[[NSNumber alloc] initWithInt: bounds.length]];
NSInvocationOperation *operation = [[NSInvocationOperation alloc] initWithTarget:self
selector:@selector(loadImagesWithOperation)
object:params];
[queue addOperation:operation];
[operation release];
}
- (void) loadImagesWithOperation:(NSArray*)bounds {
NSLog(@"loadImagesWithOperation");
}
此代码因 EXC_BAD_ACCESS 而崩溃。如果我将要调用的函数定义更改为此
- (void) loadImagesWithOperation {
NSLog(@"loadImagesWithOperation");
}
一切都变好了。我曾尝试在@selector的代码块中使用不同的语法,例如@selector(loadImagesWithOperation:)和@selector(loadImagesWithOperation:bounds:),但没有成功。
使用参数定义选择器和函数的正确方法是什么?
谢谢。