Сочувствие должно автоматически понять, что talk.google.com является Вашим доменом. Вы попытались войти в свой адрес электронной почты и пароль так или иначе?
В этом вопросе есть хорошие ресурсы по многопоточности какао: «Где я могу найти хорошее руководство по iPhone / Цель c многопоточностью? "
Я также настоятельно рекомендую прочитать новое Руководство по программированию параллелизма (, однако, игнорируйте блоки и очереди отправки, поскольку Grand Central Dispatch еще не доступен для iPhone OS iOS 4.0 только добавлены блоки и GCD), потому что он дает веские основания для использования таких структур, как NSOperation
и NSOperationQueue
в качестве альтернатива созданным вручную потокам. Для получения информации о потоках, созданных вручную, обратитесь к Руководство по программированию потоков .
Как упоминает RC, единственный самый большой источник сбоев с многопоточными приложениями Какао - одновременный доступ к общему ресурсу. Директива @synchronized
не самая быстрая, как указал Колин Уиллер , поэтому вы можете использовать NSLock
для защиты доступа к вашим общим ресурсам. Однако любая блокировка может быть дорогостоящей, поэтому я Я переводил свои приложения на использование одинарных NSOperationQueues
для доступа к этим ресурсам. Повышение производительности было значительным.
Другая проблема, связанная с Cocoa и многопоточностью, связана с обновлениями пользовательского интерфейса. Все обновления пользовательского интерфейса в Какао должны выполняться в основном потоке, иначе может возникнуть нестабильность. Если у вас есть фоновый поток, выполняющий вычисления, обязательно заключите любой метод, обновляющий пользовательский интерфейс, в вызов метода -performSelectorOnMainThread: withObject: waitUntilDone:
.
Вероятно, самая распространенная ошибка новичков (на любом языке) при работе с потоками - это разрешение доступа к изменяемым общим ресурсам без защиты / мьютексов. Вы охраняете такие ресурсы, как:
@synchronized(sharedData) { // modify sharedData safely }
Вы захотите ограничить объем данных, совместно используемых потоками, и, если они должны быть совместно использованы, предпочитайте неизменяемые объекты, чтобы уменьшить конкуренцию, вызванную синхронизацией.
Управление потоками - еще одно место, где могут возникнуть проблемы. Вот ссылка на документ, посвященный использованию потоков в iPhone.
http://developer.apple.com/iphone/library/documentation/cocoa/Conceptual/Multithreading/CreatingThreads/CreatingThreads.html .
Без кода никто не догадывается, что не так с вашим приложением,