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