菜鸟教程小白 发表于 2022-12-12 15:51:52

ios - 使用核心蓝牙从 NSArray 获取写入请求值


                                            <p><p>我这里有个方法:</p>

<pre><code>- (void)peripheralManager:(CBPeripheralManager *)peripheral didReceiveWriteRequests:(NSArray *)requests
{
    NSLog(@&#34;PERIPHERAL: peripheralManager:%@ didReceiveWriteRequests:%@&#34;, peripheral, requests);
    NSString * result = [ componentsJoinedByString:@&#34;&#34;];

    _label.text = result;
}
</code></pre>

<p>我在 <code>NSArray</code> 中收到写入请求。现在我只是将整个数组转换为字符串并将字符串输出到文本框中。确保一切设置正确。它确实在工作,但我不想列出完整的数组,而只是将值单独存储在 <code>NSString</code> 中。 </p>

<p>我想要一个字符串:</p>

<blockquote>
<p>Test</p>
</blockquote>

<p>不是这个:</p>

<blockquote>
<p>CBATTRequest: 0x1702240 Central = , Characteristic = , Offset = 0, Value = test</p>
</blockquote>

<p>这应该很容易完成,而我可能只是因为漫长的一天而脑死亡。这应该怎么做? </p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>您需要考虑 <code>requests</code> 是一个 <code>CBATTRequest</code> 数组,其中有一个 <code>value</code> 属性包含一个 <code>NSData</code> 表示正在写入的数据的对象。</p>

<p>如果你想要一个代表所有值的字符串,你需要遍历 <code>requests</code> 并将这些 <code>NSData</code> 值中的每一个转换为 <code>NSString</code>并将它们连接起来。如果我正确理解了您的问题,那么这应该就是您要查找的内容。</p>

<pre><code>- (void)peripheralManager:(CBPeripheralManager *)peripheral didReceiveWriteRequests:(NSArray *)requests {

    NSMutableString *output = [ init];
    for (CBATTRequest *request in requests) {
      NSString *stringValue = [ initWithData: encoding:NSUTF8StringEncoding];

      if (stringValue) {
            ;
      }
    }

    _label.text = output.copy;
}
</code></pre>

<p>请注意,更新到 Xcode 7 将有助于更清楚地说明这一点,因为 <code>-peripheralManager:didReceiveWriteRequests:</code> 的 <code>requests</code> 参数已更新为使用 Objective-C 泛型, 现在有类型 <code>NSArray<CBATTRequest *> *</code>.</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 使用核心蓝牙从 NSArray 获取写入请求值,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/31496159/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/31496159/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 使用核心蓝牙从 NSArray 获取写入请求值