читать в iphone xcode - PullRequest
0 голосов
/ 04 мая 2010

Добрый день!

Я хочу использовать nsthreads в проекте xcode, который вызовет функцию для доступа к сети и проверит, есть ли сеть или нет, поэтому мне нужен поток, который будет выполняться после, скажем, 1 минут, чтобы проверить подключение. и будет продолжать работать, пока приложение не будет закрыто.

[NSThread detachNewThreadSelector:@selector(startTheBackgroundJob) toTarget:self withObject:nil];

startTheBackgroundJob

NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
// wait for 3 seconds before starting the thread, you don't have to do that. This is just an example how to stop the NSThread for some time
[NSThread sleepForTimeInterval:5];
//[self performSelectorInBackground:@selector(checkNet) withObject:nil];
[self performSelectorOnMainThread:@selector(checkNet) withObject:nil waitUntilDone:YES];
[pool release];

это работает только в первый раз, но не в любом другом, я имею в виду только 1 цикл, это делает

Может кто-нибудь помочь мне в этом.

Спасибо

Ответы [ 3 ]

1 голос
/ 18 июля 2012

Потоки особенно полезны, когда вам нужно выполнить длинную задачу, но не хотите, чтобы она блокировала выполнение остальной части приложения. В частности, вы можете использовать потоки, чтобы избежать блокировки основного потока приложения.

Чтобы понять больше .... найти хороший простой и короткий исходный код от http://www.xprogress.com/post-36-threading-tutorial-using-nsthread-in-iphone-sdk-objective-c/

1 голос
/ 04 мая 2010

Вместо этого вы можете использовать NStimer ... со свойством Repeated, равным YES

0 голосов
/ 04 мая 2010

Я бы предложил комбинацию NSTimer, которая срабатывает каждые 5-10 секунд + интерфейс Reachability, который проверяет состояние сети Нет необходимости в потоке. Для использования Reachability проверьте пример Apple.

Поместите этот вызов в viewDidLoad

[NSTimer scheduledTimerWithTimeInterval:10 target:self selector:@selector(onTimer:) userInfo:nil repeats:YES];

-(void) onTimer:(NSTimer *)theTimer 
{
    //Here perform reachability checks
}
...