我有一个我真的想检索其数据的函数。
在方括号内,我可以打印出值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)!
}
}
}
在其他类中,可以按单例对象使用。