Objective c NSDictionary中块和队列的运行时检查

Objective c NSDictionary中块和队列的运行时检查,objective-c,objective-c-blocks,Objective C,Objective C Blocks,我有一组字典,存储块和队列。在某种方法之后,我需要执行它 for (NSDictionary * dict in self.arrayOfBlocksAndQueues) { if (!dict[@"block"] || !dict[@"queue"]) { continue; } dispatch_block_t block = dict[@"block"]; dispatch_async(dict[@"queue"], ^{ b

我有一组字典,存储块和队列。在某种方法之后,我需要执行它

for (NSDictionary * dict in self.arrayOfBlocksAndQueues) {
    if (!dict[@"block"] || !dict[@"queue"]) {
        continue;
    }
    dispatch_block_t block = dict[@"block"];
    dispatch_async(dict[@"queue"], ^{
        block();
    });
}
所以我的问题是,我如何在运行时检查
dict[@“block”]
dict[@“queue”]
正是我期望的类型?我有一个
typedef void(^handler)()dict[@“block”]
处理程序的类型。正如我所知,块和队列实际上是objective-c对象,但不符合
协议。那么,还有什么方法可以做到这一点呢


提前感谢!

您可以创建一个具有块/队列属性的类,以便于操作。请尝试使用此类设置块和队列属性,并在字典中添加此对象

//Block class
@interface myBlock : NSObject

@property (assign) dispatch_block_t block;

@end

//Queue class
@interface myQueue : NSObject

@property (assign) dispatch_queue_t block;

@end