<分区>
我这样创建 block :
1) 定义你自己的完成 block ,
typedef void(^myCompletion)(BOOL);
2) 创建一个将完成 block 作为参数的方法,
-(void) myMethod:(myCompletion) compblock{
//do stuff
compblock(YES);
}
3)这就是你如何使用它,
[self myMethod:^(BOOL finished) {
if(finished){
NSLog(@"success");
}
}];
如何在 block 中发送数组,然后从 block 中获取新数组?
//here I get array of image id's and go in loop for download it all,
NSString *URLString = [NSString stringWithFormat: @"%@", requestString];
NSURL * url = [NSURL URLWithString:URLString];
NSURLRequest * urlRequest = [NSURLRequest requestWithURL:url];
AFHTTPRequestOperation *requestOperation = [[AFHTTPRequestOperation alloc] initWithRequest:urlRequest];
requestOperation.responseSerializer = [AFImageResponseSerializer serializer];
[requestOperation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
userWithImage = [responseObject copy];
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Image error: %@", error);
}];
[requestOperation start];
//here I save it to mutable array and send as completion block,
是的,我认为发送 1 个图像 ID 并在 block 1 图像中返回会更好。在方法中,我将调用 block - 分别对照片进行操作。那么,有可能吗? 我可以用 NSNotifications 做这样的事情,但是当它可以成 block 时它会更广泛..
最佳答案
1) 定义自己的完成 block
typedef void(^myCompletion)(BOOL finished, NSArray *myArray);
2) 创建一个将完成 block 作为参数的方法,
-(void)myMethod:(myCompletion)compblock {
//do stuff
NSArray *myArray = ...;
compblock(YES, myArray);
}
3)这就是你如何使用它,
[self myMethod:^(BOOL finished, NSArray *myArray) {
if (finished){
NSLog(@"success");
}
}];
关于ios - 如何创建带参数的 block ? IOS 7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21841197/