检索功能数据

时间:2016-04-18 08:06:17

标签: ios xcode swift bluetooth sdk

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

在括号内,我可以打印出值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

1 个答案:

答案 0 :(得分:0)

您可以在类中创建静态变量,并将其用于任何其他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)
}
}

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

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)!
}
}
}

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