IOS 从蓝牙请求数据,然后用CADisplayLink刷新遇到的问题
PHP中文网
PHP中文网 2017-04-17 14:45:58
[iOS讨论组]

RT,最近在折腾蓝牙OBD,其中在主界面有个仪表盘,需要每10毫秒从蓝牙读取一次汽车当前车速然后让指针旋转到指定位置,当离开主界面的时候让这个仪表盘停止旋转并停止从蓝牙读取数据,我已经通过setIsRefresh:这个方法设置link停止了,也执行了stopRotating这个方法,执行了stopRotating方法后还是会继续从蓝牙读取当前车速,求解

  //设置这个BOOL控制转盘旋转
     -(void)setIsRefresh:(BOOL)isRefresh
    {
        _isRefresh = isRefresh;
        if (self.isRefresh)
        {
            [self start];
        }
        else
        {
            [self stopRotating];

        }

    }
-(void)start
{
    if (self.link) return;
    CADisplayLink *link = [CADisplayLink displayLinkWithTarget:self selector:@selector(update)];

    [link addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];
    self.link = link;
    NSLog(@"\n——————————————————\n@"转盘开始旋转"\n——————————————————\n",);
}

- (void)stopRotating
{
    [self.link invalidate];
    self.link = nil;
    BLE * ble = [BLE sharBLE];
    ble.isUser = 0;
    NSLog(@"\n——————————————————\n@"转盘停止旋转"\n——————————————————\n",);
}

- (void)update
{
dispatch_async(dispatch_get_global_queue(-2, 0), ^{
请求数据
 });
}

我把这个cell单独分离出来做了个demo,求大神们帮忙看看是神马原因导致link一直在刷新不能停止,demo地址:http://pan.baidu.com/s/1mgmpoE0

PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(0)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号