Tag: multithreading

iOS GCD: основные потоки деактивируют блоки из очередей, отличных от главной очереди?

Я знаю, что очередь не является ниткой. Очередь – это концепция более высокого уровня, чем поток в GCD. Программисты имеют дело только с очередями, и пусть система решает, какие потоки выполнять блоки для максимальной эффективности. И я знаю, что привязка главной очереди привязана к основному потоку, а это означает, что если я поставлю блок в […]

Основная проблема обработки резьбы

В моем приложении я использую back ground thread для достижения нескольких сервисов и выполнения операций с основными данными. Я использовал основную нить для работы на заднем плане, отлично работает. Вот мой код dispatch_queue_t main = dispatch_get_main_queue(); dispatch_async(main, ^{ [self backGroundCall]; }); -(void)backGroundCall { NSLog(@"Done"); if([CacheManager refreshDBforFirstTimeUseWithDelegate:self]) { [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"IsDBInitialized"]; ContainerViewController *containerViewControllerInstance = [ContainerViewController […]

Перезагрузка данных в UITableView без блокировки пользовательского интерфейса

Мое приложение получает канал данных JSON довольно большой, представляя тысячи данных о продуктах. После анализа и сохранения данных в CoreData (все в фоновом потоке) отображение данных в UITableView после разбора блокирует пользовательский интерфейс, так как это делается в основном потоке. Но проблема в том, что пользовательский интерфейс остается заблокированным на несколько секунд, что не является […]

EXC_BAD_ACCESS на UIAlertView

У меня есть поток, отправленный через GCD. Когда поток завершается, я представляю UIAlertView, чтобы пользователь знал, что поток завершен. Я запускаю UIAlertView в основном потоке ([NSThread mainThread]). Если я останусь в Контроллере просмотра, вид предупреждения появится в порядке, и когда я нажму кнопку [Ok], он исчезнет, ​​как следует. Однако, если я вернусь к главному контроллеру […]

Попытка запустить два процесса одновременно в GCD – iOS

Я пытаюсь загрузить два набора данных в фоновом режиме одновременно через GCD в iOS. В настоящее время я построил две отдельные параллельные очереди, в которых я запускаю каждую из задач. Однако задержка между завершением первой очереди и второй очередью (выполняющей задачи с одинаковой интенсивностью) очень велика (поэтому я предполагаю, что они не работают одновременно). У […]

NSOperation не выполняется при выполнении

У меня проблема с NSOperations. Все работает нормально, но иногда (я не знаю, почему). Операционный блок просто пропущен. Я что-то упускаю? Как возможно, что операция даже не NSLogging «введенная операция»? Вот код из viewDidLoad: //I'm using weakOperation in order to make [self.queue cancelAllOperation] method when viewWillDisappear NSBlockOperation* operation = [[NSBlockOperation alloc] init]; __weak NSBlockOperation* weakOperation […]

Сетевые запросы iOS в последовательной очереди

В моем контроллере просмотра я делаю сетевые вызовы с помощью класса Client. Клиент в основном является оберткой сетевых вызовов Alamofire (AFNetworking), поэтому у меня есть методы сохранения (POST), get (GET) и удаления (DELETE). Каждый контроллер представления имеет клиент переменной экземпляра, и пользователь может создавать, редактировать и удалять объекты следующим образом: client.save(object) { error in print(error) […]

Adobe iOS SDK падает при возврате на передний план, ссылаясь на файл записи в файл plist

У меня возникли проблемы с воспроизведением описанной ниже аварии (полученной от анализа / отслеживания сбоев). Кажется, что всегда появляется еще одна подозрительная нить, которая работает вместе с разбитой нитью на каждом экземпляре аварийного сообщения: Разбился Thread 0 CoreFoundation 0x2f9074be CFGetTypeID + 6 1 CoreFoundation 0x2f91e47b _flattenPlist + 47 2 CoreFoundation 0x2f91e57f _flattenPlist + 307 3 […]

Подождите возврата в func, который отправляет асинхронную операцию (Swift + Parse)

Это фундаментальная проблема с выполнением асинхронных блоков, и я пока не нашел хорошего решения. Следующий код работает, но он блокирует основной поток, и я бы хотел этого избежать. override func shouldPerformSegueWithIdentifier(identifier: String?, sender: AnyObject?) -> Bool { //check if transaction already exists let trans = PFQuery(className: "Transactions") trans.whereKey("itemId", equalTo: self.pfObject.objectId!) //I need the count of […]

Магическая запись с параллелизмом

Я занимаюсь разработкой приложения iOS после довольно долгое время работы с Core Data и Magical Record и с ошибкой: error: NULL _cd_rawData, но объект не превращается в ошибку Я не знал Core Data перед этим проектом, и, как оказалось, мне было очень наивно думать, что я могу просто работать с Magical Record, не беспокоясь о […]

Давайте будем гением компьютера.