我有一个我真的想检索其数据的函数。

在方括号内,我可以打印出值DecodedData

但是,如果我将print(DecodedData)放在函数外部,则Xcode告诉我“期望的声明”如何使DecodedData在整个文件中均可访问?

我尝试使用委托方法没有成功,还有其他方法吗?如果是这样,我将如何去做?

var DecodedData = ""
//Reading Bluetooth Data
func peripheral(peripheral: CBPeripheral, didUpdateValueForCharacteristic characteristic: CBCharacteristic, error: NSError?) {

    if let data = characteristic.value {
        DecodedData = String(data: data, encoding: NSUTF8StringEncoding)!
    }

    print(DecodedData)
}


如何在不同的Swift文件中使用变量DecodedData

最佳答案

您可以在该类中创建静态变量,并在其他任何swift文件中使用它。

class YourClass {
static var DecodedData: String = ""
 ...


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

   if let data = characteristic.value {
     YourClass.DecodedData = String(data: data, encoding: NSUTF8StringEncoding)!
   }
print(YourClass.DecodedData)
}
}


或者您可以创建您的单例对象。

class YourClass {

 static let singletonInstance = YourClass()

 var DecodedData: String = ""

 private init() {
 }

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

if let data = characteristic.value {
  self.DecodedData = String(data: data, encoding: NSUTF8StringEncoding)!
}
}
}


在其他类中,可以按单例对象使用。

08-25 18:18