Я пытаюсь добавить dispatch_queue_t
к NSMutableArray
так:Может ли dispatch_queue_t быть добавлен в NSMutableArray?
NSMutableArray* queuesWaitingForTargetQueue = (__bridge NSMutableArray*)dispatch_queue_get_specific(targetQueue, WAITING_QUEUE_LIST_KEY);
NSLog(@" dispatch_get_current_queue() = %#x", (unsigned int)dispatch_get_current_queue());
NSLog(@" dispatch_get_main_queue() = %#x", (unsigned int)dispatch_get_main_queue());
NSLog(@" currQueueId = %#x", (unsigned int)currQueueId);
NSLog(@" queuesWaitingForTargetQueue = %#x (%@)", (unsigned int)queuesWaitingForTargetQueue, NSStringFromClass([queuesWaitingForTargetQueue class]));
[queuesWaitingForTargetQueue addObject:(__bridge id)currQueueId];
Последняя строка иногда терпит неудачу с EXC_BAD_ACCESS:
Thread 1: EXC_BAD_ACCESS (code=1, address=0xc08314eb)
В то время как выход был:
dispatch_get_current_queue() = 0x2879640
dispatch_get_main_queue() = 0x2879640
currQueueId = 0x2879640
queuesWaitingForTargetQueue = 0x8672ae0 (__NSArrayM)
Что здесь может быть не так?
Возможный дубликат [Что лучше всего поставить c-struct в NSArray?] (Http://stackoverflow.com/questions/4516991/whats-the-best-way-to-put-ac-struct -в-ан-NSArray). 'dispatch_queue_t' - это просто структура C. – rmaddy
BTW - используйте '% p' (без трансляций) для указателей на запись. – rmaddy
@rmaddy: 'dispatch_queue_t' на самом деле объект Objective-C, см. Http://stackoverflow.com/questions/8618632/does-arc-support-dispatch-queues. –