如何在 nsarray 中存储 dispatch_queue_t
How to store dispatch_queue_t in nsarray
这里我有一堆dispatch_queue_t,我想用一个NSArray来组织它们。但据我所知,没有这样的 API 可以这样做。那么我该如何实现呢?
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]>
这里我有一堆dispatch_queue_t,我想用一个NSArray来组织它们。但据我所知,没有这样的 API 可以这样做。那么我该如何实现呢?
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]>