ios中NSThread停止比较郁闷的问题

问题描述:
在界面上创建了一个NSThread的线程,执行后用sleep停止15秒再执行,但是在这15秒内把此界面关闭了,并且在viewWillDisappear方法中把此线程cancel取消掉,但还是会运行,从网上看了很多人说的都是说cancel和exit的,试了都不行

解决:
其实网上说的cancel不是不可以,只是不理解怎么使用,如果要使用cancel和exit的话必须写个线程类继承NSThread,然后在这个子类中去判断就可以停止了
@implementation MyThread

- (void)main {
    [super main];
    
    while (1) {
        if (self.isCancelled) {
            [NSThread exit];
        }
        NSLog(@"MyThread name is  %@", [[NSThread currentThread] description]);
    }
}

@end

猜你喜欢

转载自iaiai.iteye.com/blog/2143135