睡眠或暂停NSThread

Sha*_*hah 4 nsthread ipad

我正在创建一个新的Thread,它会在每一段时间后运行我的一个方法.

现在我正在做的如下:

NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(setUpTimerThread) object:nil];
 [thread start];
Run Code Online (Sandbox Code Playgroud)

上面的方法调用我的setUpTimerThraed方法,这个方法生成一个NSTimer并在每1分钟后调用一个特定的方法,即syncData.现在我想要的是我的同步数据方法是将一些文件发送到FTP文件夹.什么时候它发送一个文件到FTP我想让我的"线程"睡一会儿.

我用过

[NSThread sleepForTimeInterval:3.0];
Run Code Online (Sandbox Code Playgroud)

但是这段代码阻止了我的应用主线程.有什么方法我只能睡一段时间我的"线程"线程,以便它不会停止我的应用程序响应3秒,并没有睡觉我的主线程.希望你得到我要问的人.请帮忙?

Col*_*gic 6

sleepForTimeInterval:睡眠它被调用的线程.尝试在要睡眠的线程上调用睡眠而不是主线程.

用你的当前睡眠呼叫替换

[self performSelector:@selector(sleepThread) onThread:thread withObject:nil waitUntilDone:YES];
Run Code Online (Sandbox Code Playgroud)

然后实现这个方法

-(void)sleepThread {
    [NSThread sleepForTimeInterval:3.0];
}
Run Code Online (Sandbox Code Playgroud)