【问题标题】:Core Bluetooth characteristic not updating value核心蓝牙特性不更新值
【发布时间】:2013-09-22 19:45:52
【问题描述】:

我不知道我做错了什么。 didUpdateValueForCharacteristic 没有按预期调用。我需要发送一个相当长的字符串,所以我将它分成 5 个字符的块,并以 0.03 秒的间隔“更新”它们。代码如下:

The view controller code.

它符合必要的协议,一切正常,除了didUpdateValueForCharacteristic 只为列表名称调用一次,为“START”块调用一次。

我该如何解决这个问题?

【问题讨论】:

    标签: ios bluetooth ios7 core-bluetooth


    【解决方案1】:

    您将 NSTTimer 设置为不重复:

    [NSTimer scheduledTimerWithTimeInterval:1 target:self
      selector:@selector(sendList) userInfo:nil repeats:NO];
    

    这样它运行一次就停止。将repeats 更改为YES,发送实际上将开始发生。使用更多日志记录来解决此类问题。 :)

    请注意,您的代码也存在一些其他问题:

    1. 你不应该睡在主线程上。管理器当前已初始化为使用主队列。
    2. 只要外围设备已连接或正在连接,就不应释放它(viewwillDisappear: 中的问题)
    3. 列表处理真的很“神秘”。 Objective-C 是一门美丽的、真正富有表现力的语言,你可以利用它来发挥自己的优势。 (我在 Java 中非常缺少命名参数)

    如果您遇到更多问题,请继续提出单独的问题。

    【讨论】:

    • 太棒了。这样做的“计时器”方式非常有效。非常感谢!!
    • @Macro206 我很高兴这有帮助!继续做core-bluetooth 这是未来的方式:)
    • 您只是想读取数据?你还没有写任何数据?我遇到了一些类似的问题,我正在使用 write 方法写消息,并想使用 read 方法读取相同的数据,但我没有在这种方法中得到消息。找不到任何解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-12
    • 2013-03-02
    相关资源
    最近更新 更多