objective-c - 将 block 内的变量分配给 block 外的变量

我遇到了一个错误

Variable is not assignable (missing __block type specifier)

就行了aPerson =参与者;。如何确保 block 可以访问 aPerson 变量并且可以返回 aPerson 变量?

Person *aPerson = nil;

[participants enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {   
    Person *participant = (Person*)obj;

    if ([participant.gender isEqualToString:@"M"]) {
        aPerson = participant;
        *stop = YES;
    }
}];

return aPerson;

最佳答案

您需要使用这行代码来解决您的问题:

__block Person *aPerson = nil;

更多详情请引用本教程:Blocks and Variables

https://stackoverflow.com/questions/7962721/

相关文章:

ios - 创建模糊叠加 View

objective-c - 以编程方式设置 UIButton 标题 UILabel 字体大小

iphone - 您在编写 Objective-C 和 Cocoa 时使用了哪些最佳实践?

ios - 使用 iOS 确定设备(iPhone、iPod Touch)

ios - iPad 多任务支持需要这些方向

iphone - 如何在 UIView 下绘制阴影?

ios - 核心数据 : Quickest way to delete all instances

objective-c - 如果您使用 CocoaPods,您的 .gitignore 会包含什么内

objective-c - 在 Objective-C 中为类定义私有(private)方法的最佳方

ios - Objective-C ARC : strong vs retain and weak