我有一系列字典,用于存储块和队列。在一些方法之后,我需要执行它。
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”]
的类型为handler
。据我所知,块和队列实际上是objective-c对象,但不符合<NSObject>
协议。那么,无论如何都要这样做吗?
提前致谢!
答案 0 :(得分:0)
您可以创建一个具有块/队列属性的类,以便于操作。尝试使用此类设置块和队列属性,并将此对象添加到字典中。
//Block class
@interface myBlock : NSObject
@property (assign) dispatch_block_t block;
@end
//Queue class
@interface myQueue : NSObject
@property (assign) dispatch_queue_t block;
@end