这里我有一堆dispatch_queue_t,我想用NSArray组织它们。但据我所知,没有这样的API可以做到这一点。那我怎么能实现呢?
答案 0 :(得分:2)
NSArray
不可变。您必须使用NSMutableArray
(NSArray
的子类)来添加对象。
而且,从iOS 6.0 SDK和Mac OS X 10.8 SDK,Dispatch Queue被声明为Objective-C类型。因此,您可以将Dispatch Queue对象用作Objective-C对象。
@import Foundation;
int main()
{
NSMutableArray *array = [[NSMutableArray alloc] init];
dispatch_queue_t q = dispatch_get_global_queue(0, 0);
NSLog(@" q=%@", q);
[array addObject:q];
NSLog(@"array[0]=%@", array[0]);
return 0;
}
结果:
q=<OS_dispatch_queue_root: com.apple.root.default-qos[0x7fff79749b40]>
array[0]=<OS_dispatch_queue_root: com.apple.root.default-qos[0x7fff79749b40]>