didDiscoverPeripheral“构建失败”错误

2023-12-20

我不确定为什么这段代码无法构建,并且错误消息似乎相当神秘。

Code:

var centralManager: CBCentralManager!;
var nrf8001Peripheral: CBPeripheral!;

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.

    // initialize centralManager
    self.centralManager = CBCentralManager(delegate: self, queue: nil);

    // start scanning for device
    self.centralManager.scanForPeripheralsWithServices([UART_SERVICE_UUID], options:nil);
}

func centralManager(central: CBCentralManager!, didDiscoverPeripheral peripheral: CBPeripheral!, advertisementData advertisementData: [NSObject : AnyObject]!, RSSI RSSI: NSNumber) {

            //print out the name of the scanned peripheral
            print("Discovered \(peripheral.name)")

            //print out the UUID of the scanned peripheral
            print("NSUUID string \(peripheral.identifier.UUIDString)")

            //stop scanning when found
            self.centralManager.stopScan()

            //connect when found
            self.centralManager.connectPeripheral(peripheral, options:nil);
}

我从 XCode 编译器收到的错误是:

“Objective-C 方法 'centralManager:didDiscoverPeripheral:advertisementData:RSSI:' 由方法 'centralManager(:didDiscoverPeripheral:advertisementData:RSSI:)' 与可选要求方法 'centralManager(协议“CBCentralManagerDelegate”中的:didDiscoverPeripheral:advertisementData:RSSI :)'”

通过查看 CoreBluetooth 文档,似乎方法语法和参数是正确的,并且参数的可选性是直接从规格表复制的:https://developer.apple.com/library/ios/documentation/CoreBluetooth/Reference/CBCentralManagerDelegate_Protocol/#//apple_ref/occ/intfm/CBCentralManagerDelegate/centralManager:didDiscoverPeripheral:advertisementData:RSSI https://developer.apple.com/library/ios/documentation/CoreBluetooth/Reference/CBCentralManagerDelegate_Protocol/#//apple_ref/occ/intfm/CBCentralManagerDelegate/centralManager:didDiscoverPeripheral:advertisementData:RSSI:

任何帮助,将不胜感激!谢谢

根据评论:

  1. 使用 XCode 7 测试版
  2. 当我将函数声明更改为:

    funccentralManager(中央:CBCentralManager,didDiscoverPeripheral外围设备:CBPeripheral,advertisementDataadvertisementData:[NSObject:AnyObject],RSSI RSSI:NSNumber)

我仍然遇到相同的构建错误。

  1. 我的centralManagerDidUpdateState:方法是

    func centralManagerDidUpdateState(central: CBCentralManager) {
    
    print("centralManagerDidUpdateState:");
    
    switch (central.state) {
    
        case .PoweredOff:
            print("CBCentralManagerStatePoweredOff");
    
        case .Resetting:
            print("CBCentralManagerStateResetting");
    
        case .PoweredOn:
            print("CBCentralManagerStatePoweredOn");
    
        //scan for peripheral devices
        self.centralManager.scanForPeripheralsWithServices([UART_SERVICE_UUID], options:nil);
    
        case .Unauthorized:
            print("CBCentralManagerStateUnauthorized");
    
        case .Unsupported:
            print("CBCentralManagerStateUnsupported");
    
        default:
            print("CBCentralManagerStateUnknown");
        }
    }
    

感谢你的建议;我最终通过 XCode 7 文档找到了答案。以下函数的 XCode 6 语法如下:

func centralManagerDidUpdateState(central: CBCentralManager!) {}

func centralManager(central: CBCentralManager!, didDiscoverPeripheral peripheral: CBPeripheral!, advertisementData advertisementData: [NSObject : AnyObject]!, RSSI RSSI: NSNumber) {}

func centralManager(central: CBCentralManager!, didConnectPeripheral peripheral: CBPeripheral!) {}

func centralManager(central: CBCentralManager!, didDisconnectPeripheral peripheral: CBPeripheral!, error: NSError!) {}

func peripheral(peripheral: CBPeripheral!, didDiscoverServices error: NSError!) {}

func peripheral(peripheral: CBPeripheral!, didDiscoverCharacteristicsForService service: CBService!, error: NSError!) {}

func peripheral(peripheral: CBPeripheral!, didUpdateNotificationStateForCharacteristic characteristic: CBCharacteristic!, error: NSError!) {}

func peripheral(peripheral: CBPeripheral!, didUpdateValueForCharacteristic characteristic: CBCharacteristic!, error: NSError!) {}

但是,这些函数将与 XCode 7 CoreBluetooth 库声明冲突。

注意不同用途选项数据类型.

(XCode 6) error:NSError! vs. (XCode 7) error:NSError?

(XCode 6) advertisementData : [NSObject : AnyObject]! vs. (XCode 7) advertisementData [String : AnyObject]

XCode 7 beta 的相应函数声明实际上如下:

func centralManagerDidUpdateState(central: CBCentralManager) {}

func centralManager(central: CBCentralManager, didDiscoverPeripheral peripheral: CBPeripheral, advertisementData: [String : AnyObject], RSSI: NSNumber) {}

func centralManager(central: CBCentralManager, didConnectPeripheral peripheral: CBPeripheral) {}

func centralManager(central: CBCentralManager, didFailToConnectPeripheral peripheral: CBPeripheral, error: NSError?) {}

func peripheral(peripheral: CBPeripheral, didDiscoverServices error: NSError?) {}

func peripheral(peripheral: CBPeripheral, didDiscoverCharacteristicsForService service: CBService, error: NSError?) {}

func peripheral(peripheral: CBPeripheral, didUpdateValueForCharacteristic characteristic: CBCharacteristic, error: NSError?) {}

func peripheral(peripheral: CBPeripheral, didUpdateNotificationStateForCharacteristic characteristic: CBCharacteristic, error: NSError?) {}

func centralManager(central: CBCentralManager, didDisconnectPeripheral peripheral: CBPeripheral, error: NSError?) {}

希望这对遇到同样问题的其他人有帮助!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

didDiscoverPeripheral“构建失败”错误 的相关文章

  • Swift 中 UIImages 的淡入淡出动画

    我有一组图像 我希望它们在登录屏幕的背景中淡出 我无法在 swift 中找到任何可以做到这一点的东西 有什么办法我可以做到吗 这是我当前的代码 override func viewDidLoad super viewDidLoad star
  • iOS 对 Google 云消息传递的支持

    我在谷歌的开发者控制台中看到 GCM 允许为 iOS 生成 API 密钥 我在网上搜索了有关如何在 iOS 应用程序中通过 GCM 实现推送通知的任何类型的文档 但没有找到答案 真的有可能在 iOS 应用程序中使用 GCM 实现推送通知 j
  • Parse - 使用 Swift 进行子类化?

    我正在尝试让标准子类与 swift 一起使用 桥接标头 h import
  • 如何在 Swift 语言中传递错误指针?

    我试图在 swift 中传递错误指针 但无法这样做 编译器抱怨 NSError 无法转换为 NSErrorPointer var error NSError NSError var results context executeFetchR
  • 下标:使用字符串枚举访问我的字典值

    我想做类似的事情 使用字符串枚举访问我的字典值 我试图重载字典的下标但没有成功 访问字典 let district address JsonKeys district 其中 JsonKeys 是 enum JsonKeys String c
  • 当设置 setVisibleXRangeMaximum 时,iOS-Charts X 轴值无限重复

    我正在尝试绘制一个图表 其中 x 轴是TimeIntervalY 轴是power consumption 由于每天都会有数据 因此将有太多数据无法显示 因此 我想一次显示 5 个值 我通过设置实现了这一点self chart setVisi
  • Xcode MyProjectName-Bridging-Header.h 不存在

    我想开始在我的 Objective C 项目中使用 Swift 所以我添加了一个快速类 import Foundation objc class System NSObject objc func printSome println Pri
  • XCode 调试 - 我可以绕过反汇编代码的单步执行吗

    调试项目时 在 XCode 中设置断点后 我将开始单步执行代码 然后我会遇到反汇编代码 我认为这些代码是对没有可用源代码的各种框架的调用 这是一个正确的假设吗 有没有一种方法 可能通过我尚未找到的项目设置 来抑制此汇编代码的显示 而不必单步
  • 在两个数字之间设置 UILabel 文本动画?

    我是 iPhone 和 Mac 编程新手 之前为 Windows 开发过 我有一个问题 我如何制作动画text的财产UILabel两个数字之间 例如从5 to 80以 Ease Out 风格 是否可以与CoreAnimation 我已经在谷
  • 在 viewWillAppear( ) 中获取空值,但在 viewDidLoad( ) 中获取有效值

    When print mess 被称为来自viewDidLoad函数 它打印预期的内容 但是当从viewWillAppear函数 它给出空输出 完成分配后标签也没有更新viewDidLoad 为什么是这样 主视图控制器 if segue i
  • 以编程方式更改 UISlider 的范围

    如何以编程方式设置 UISlider 的最小最大范围 例如 虚拟代码 UISlider slider UISlider alloc init slider min 3 slider max 3 EDIT 所以我有以下内容 sl minimu
  • 删除部分(红色删除按钮),UITableViewController - iOS

    我正在尝试做一个分组的 uitableview 并且我已经激活了编辑选项 我希望用户也能够删除整个部分 而不仅仅是特定行 因此 当您单击 编辑 时 每个表格单元格左侧显示的红色减号按钮也应该显示在各个部分 部分标题左侧 有人知道如何做到这一
  • UIWebView 如何检测 被点击

    我知道下面的方法可以检测链接元素点击 但我想知道是否UIView可以检测是否img元素被点击 BOOL webView UIWebView webView shouldStartLoadWithRequest NSURLRequest re
  • 将第 3 方库添加到 iPhone 应用程序时如何设置“标题搜索路径”的路径

    我想添加第 3 方库语音转文本 https github com todoroo iPhone Speech To Textto my Xcode项目 我只是拖xcodeproj文件在我的 iPhone 项目中 然后我按照目标依赖项 将二进
  • 从 AF.Request 响应获取数据

    我需要使用 Alamofire 的 Post 请求调用的 json 响应中的数据 但由于某种原因我无法访问该数据 我尝试按照 Alamofire github 文档以及这篇文章进行操作从 AF 响应 JSON 获取数据 https stac
  • AVAssetExportSession 输出文件

    AVAssetExportSession 输出文件应该是什么样子 我正在尝试压缩 ALAsset 项目中的视频 但它不起作用 我猜输出文件与它有关 这是我正在使用的代码 NSString destinationPath NSHomeDire
  • ios - 使用 SIGPIPE 和 SIG_IGN 的信号函数

    我加入了一个旧项目 我发现了这条线 BOOL application UIApplication application didFinishLaunchingWithOptions NSDictionary launchOptions si
  • swift 3.0 中的 Sha 256 加密语法错误

    func SHA256 gt String let data self data using String Encoding utf8 let res NSMutableData length Int CC SHA256 DIGEST LE
  • iOS SDK:MapKit MKPolyLine 未显示

    我试图在地图上显示多段线 但该线没有显示 我尝试了很多事情 但注意到似乎有用 我检查了核心数据函数 它正在返回数据 所以这不是问题 它必须是我在地图点创建或地图上绘制的某个地方 我猜 我确信一定是某个地方出了点小错误 但我找不到它 My c
  • iOS 上的本地通知需要用户许可吗?

    我在我的应用程序中使用 UILocalNotification 来安排通知 通知工作正常 并在我需要时显示 我对此没有意见 我没有做任何远程 推送通知 让我想知道的是 我从未见过您通常在多个应用程序中看到的推送通知的著名权限对话框 我什至重

随机推荐

  • 对象类型的 Flowtype 数组不允许额外的属性

    我在流程方面遇到了一个奇怪的错误 我只是想有一个函数来接受带有一个对象的数组amount属性 但在提供具有更多属性的对象时出现错误 const sum items Array lt amount number gt gt something
  • Win32Exception 没有足够的存储空间来处理此命令

    通过我的自动崩溃收集MaxTo http www maxto net我收到以下崩溃报告 V8 12 0 0 System ComponentModel Win32Exception Void UpdateLayered 0 Version
  • 使用 less 将 css 文件导入为块级导入

    有没有办法通过使用将 css 文件的规则嵌套在选择器下 import就像导入 less 文件时一样吗 如果你有一个文件 x less x color 000 和文件 main less scope import x less 编译 main
  • NTFS $MFT 文件可以有子记录吗?

    我正在编写一些代码来解析 NTFS 卷中磁盘上的 MFT 这很简单 但一个特殊的极端情况引起了我的注意 我在互联网上的任何地方都找不到明确的答案 对于 NTFS 中的普通文件 如果文件具有的属性多于单个记录所能容纳的属性 则单个文件可能有多
  • 自动展开并输出C/C++代码

    我正在做一个实验 第一步是展开循环 从 C C 十几次 例如 10 50 等 并输出 C C 展开代码 我可以使用任何工具来自动展开此类展开吗 换句话说 我需要的是 C C source loop gt gt TOOL Unroll by
  • 如何通过键选择单个实体(低级java数据存储API)

    我对如何创建 Key 对象来精确选择实体 客户 的 1 行感到有点困惑 我的代码 Query query new Query Customer how do I have to create this key Key key KeyFact
  • AngularJS html5模式和硬404

    我有一个 AngularJS 应用程序正在使用html5mode set to true 目前 该应用程序显示一个软 404 页面 其中 otherwise路由器里设置 有没有一种方法可以在使用 html5 模式时提供实际的 404 HTT
  • `DateTime.Now - DateTimeNow.AddSecond(-1)` 如何为零

    我在控制台应用程序中运行以下代码 while true DateTime dt1 DateTime Now DateTime dt2 DateTime Now AddSeconds 1 if dt1 dt2 Seconds 1 Consol
  • 如何防止在输入字段中输入无效字符

    Onkeydown 我运行以下 JavaScript function ThisOnKeyDown el if el title textonly A Za z s i test el value el value el value rep
  • Python加权随机[重复]

    这个问题在这里已经有答案了 我需要根据加权循环返回不同的值 这样 20 人中有 1 人得到 A 20 人中有 1 人得到 B 其余的人得到 C So A gt 5 B gt 5 C gt 90 这是一个似乎有效的基本版本 import ra
  • 使用EventSource获取用户在线状态可靠吗?

    我使用了 EventSource 方法来获取网站上活跃用户的在线状态 下面的 JavaScript 代码被插入到每个页面中 var source new EventSource set online php 因此这段代码正在执行set on
  • 在 Python 中创建新字典

    我想用 Python 构建一本字典 但是 我看到的所有示例都是从列表实例化字典等 如何在 Python 中创建一个新的空字典 Call dict没有参数 new dict dict 或者简单地写 new dict
  • 裸仓库上的 git diff

    我想看看 gitlab 服务器端上个月 repo 发生了多少变化 cd path to my bare repo git git git dir diff shortstat 1 month ago fatal Unable to read
  • 用于教学的 Python 3 IDE [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 随着 Python 3 的日趋成熟并慢慢获得采用 我们正在尝试在面向 12 18 岁儿童的入门编程课程
  • Bash 循环遍历目录,包括隐藏文件

    我正在寻找一种方法 在 bash 中对我的目录包含的所有内容 即文件 目录和链接 包括隐藏的链接 进行简单循环 如果它可以专门在 bash 中 我会更喜欢 但它必须是最通用的 当然 文件名 和目录名 可以有空格 换行符 符号 除了 和 AS
  • IModelBinder 上的 BindProperty 和 SetProperty 有什么区别

    我正在 Mvc 应用程序中创建自定义模型绑定程序 我想将字符串解析为枚举值并将其分配给模型属性 我已经让它工作了BindProperty方法 但我也注意到有一个SetProperty方法 protected override void Bi
  • PDFBox 按钮执行 javascript 关闭文档

    我的用例是在 pdf 页面上有一个像这样的按钮 实际上是将它们添加到现有页面 但现在我只想看到它对任何东西都有效 Back 它所做的只是关闭当前的 pdf 页面 这个想法是打开多个选项卡 每个选项卡都是一个 pdf 然后当您点击 后退 按钮
  • 从 BigQuery 中的查询返回数组(重复字段)

    我是 BigQuery 和 SQL 的新手 我有一张包含以下详细信息的表格 Schema ID String Nullable BCats String Repeated ID可以重复 Preview ID BCats ABCD BCat2
  • 如何使用美汤进入下一页?

    我必须从网站的 5 个页面中提取信息 每页的末尾都有 下一页 按钮 这是下一个按钮的 html 代码 li class pagination next span class icon arrowright thin pagination b
  • didDiscoverPeripheral“构建失败”错误

    我不确定为什么这段代码无法构建 并且错误消息似乎相当神秘 Code var centralManager CBCentralManager var nrf8001Peripheral CBPeripheral override func v