У меня есть это приложение, созданное для iPhone 4, когда оно было запущено.Теперь это приложение не работает на iPhone 4S.
Я идентифицировал секцию преступника как часть GCD.Вот оно:
dispatch_group_t my_group = dispatch_group_create();
dispatch_queue_t queue1 =
dispatch_queue_create("Queue 1", NULL);
dispatch_queue_t queue2 =
dispatch_queue_create("Queue 2", NULL);
dispatch_group_async(my_group, queue1, ^{
[self doStuff1];
});
dispatch_group_async(my_group, queue2, ^{
[self doStuff2];
});
dispatch_group_notify(my_group, dispatch_get_main_queue(), ^{
// this is block 3, this is to be executed after both queues end processing
// this is never executed on iPhone 4S, but is executed on iPhone4
// no error message, but execution never starts inside this block
});
Идея такова: создаются две очереди и группа.Я запускаю задачи для обеих очередей, асинхронно, используя группу.Когда оба завершены, группа запускает еще один блок задач.
Это прекрасно работает на iPhone 4, но последний блок 3 так и не был достигнут.
Есть причина для этого?Любые подсказки?
спасибо.