ios - 如何创建带参数的 block ? IOS 7

标签 ios objective-c objective-c-blocks

<分区>


想改进这个问题吗? 通过 editing this post 添加细节并澄清问题.

关闭 9 年前

我这样创建 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/

上一篇:iOS - UITableView - 快速滚动时行神秘地重复自己? (模拟器)

下一篇:ios - 在另一个 NSArray 中访问一个 NSArray 的信息

相关文章:

ios - 如何在两个组织中添加单个应用程序?客户团队和开发团队

ios - CoreData - 安全检查 CoreData 对象的值

iOS:添加数组以创建动态单元格

ios - 无法在 swift 中使用 Objective-c block

objective-c - 传入自定义选择器实现

ios - 按专辑名称获取 ALAssetsGroupAlbum 的海报图像

ios - Swift 中的客户 UINavigation Controller

ios - 保存未打开的推送通知

objective-c - Objective-C 仅用于 Mac OS/iPhone 上的开发吗?

ios - 使用 writeToUrl 更新构建中包含的文件(在应用程序容器 .app 中)