鉴于此工作区示例:
Playground execution failed: Playground2.playground:6:3: error: ambiguous reference to member 'peripheral'
self.peripheral.writeValue([], forDescriptor: 0)
^~~~
Playground2.playground:5:6: note: found this candidate
var peripheral:CBPeripheral!
^
Playground2.playground:1:7: note: found this candidate
func peripheral(peripheral: CBPeripheral, didUpdateValueForDescriptor descriptor: CBDescriptor, error: NSError?) {
我收到的错误如下:
self.peripheral
因此,它似乎无法确定我的peripheral
代码是否是对我名为peripheral
的变量的引用,还是我选择实施的代理函数之一?我想我可以将import Foundation
extension Int {
func frobnicate() { }
func barf() { }
}
class YakAttack: NSObject {
var something:Int!
func something(something:Int, else:Int) {
}
func foobar() {
self.something.frobnicate()
}
}
变量重命名为其他内容......
但让我感到惊讶的是,如果我构建一个类似的例子,它就没有消除歧义的问题:
foobar()
self.something
函数应该与{{1}}引用存在相同的问题,但它没有这样的问题。有什么区别?
(我正在使用XCode 7.3 Beta 5,其中包含最新的Swift版本)
答案 0 :(得分:2)
我最好的猜测是,由于处理Objective-C协议/数据类型而导致混淆的消息。我没有资格分析具体的内容,但到目前为止,我已经了解到在处理这两种语言时仍会出现一些像这样的奇怪错误。
我猜这个问题会在未来发生,但是现在你可能只是更改了变量名称。