2016-04-18 6 views
0

Ich habe eine Funktion, deren Daten ich wirklich abrufen möchte. In den Klammern kann der Wert DecodedData ausgedruckt werden.Abrufen von Funktionsdaten

Allerdings, wenn ich print(DecodedData) nur außerhalb der Funktion setzen würde, sagt Xcode, dass "Erwartete Deklaration" wie würde ich DecodedData zugänglich in der gesamten Datei haben?

Ich habe versucht, mit der Delegate-Methode ohne Erfolg, gibt es einen anderen Weg? und wenn ja, wie würde ich es tun?

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

Wie würde ich in ganz verschiedenen Swift-Dateien gehen über die Variable DecodedData zur Verfügung zu haben?

+0

wo genau setzen Sie eine andere 'print (DecodedData)' Linie –

+0

Gleich nach der letzten geschweiften Klammer. –

+0

das scheint nicht der richtige Ort um mit Variablen zu interagieren. Könnten Sie den Lückencode Ihrer Klasse kopieren? –

Antwort

0

Sie können statische Variable in der Klasse erstellen und verwenden Sie jede andere schnelle Datei.

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

oder Sie können Singleton-Objekt von yourclas erstellen.

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

und in anderer Klasse können Sie von Singleton-Objekt verwenden.

+0

Danke, guter Herr! Deine erste Lösung funktioniert wie ein Champion! –

+0

dann vergessen Sie nicht, die Antwort zu akzeptieren: p – Sahil

+0

Hoppla fast hätte ich vergessen;) –