我们如何确定某个特定的对象是否是块?
例如,

NSSet *set =[NSSet setWithObjects:
             @"name1",
             @"name2",
             [^{ /* ..... some code */ } copy],
             nil];

怎样才能找出集合中的哪一个对象是块呢?

最佳答案

有一种更安全的方法可以在不实际使用私有api或使用私有字符串名称构造类的情况下确定某个块:

- (BOOL)isBlock:(id)item {
    id block = ^{};
    Class blockClass = [block class];
    while ([blockClass superclass] != [NSObject class]) {
        blockClass = [blockClass superclass];
    }
    return [item isKindOfClass:blockClass];
}

关于objective-c - 如何检查对象是否阻塞,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6660854/

10-10 22:41