如何在nsarray中存储dispatch_queue_t

时间:2015-07-16 06:03:05

标签: nsarray grand-central-dispatch

这里我有一堆dispatch_queue_t,我想用NSArray组织它们。但据我所知,没有这样的API可以做到这一点。那我怎么能实现呢?

1 个答案:

答案 0 :(得分:2)

NSArray不可变。您必须使用NSMutableArrayNSArray的子类)来添加对象。

而且,从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]>