2016-04-11 10 views
0

Ich Emittieren eines Array wie folgt mit socket.io:Wie entpacke ich ein Array, das mit socket.io an swift übergeben wurde?

var theArray = [true, false, true, false]; 

socket.on('arrayMsg', function (msg) { 

    io.emit('arrayMsg', theArray); 

}); 

In meiner schnellen app ich das Array so sehen ...

socket.on("arrayMsg"){data, ack in 
     print(data[0]) 
    } 

Welche zurück:

(
    1, 
    0, 
    1, 
    0 
) 

Wie kann ich dies in Swift in ein Array umwandeln? Ich habe alle möglichen Kombinationen ausprobiert? und ! aber kann nicht herausfinden, wie man die Daten auspackt.

Vielen Dank

Antwort

0

Sie müssen das optionale entfernen. Versuchen Sie damit:

if let dataDict = data[0] as? [Int]{ 
print(dataDict) } 
+0

Dank Manuel das war genau das, was ich brauchte. Einfach wenn du weißt wie! :) – Kittovski

0

Socket.IO on iOS

self.socket.on("win") {[weak self] data, ack in 
    if let name = data?[0] as? String, typeDict = data?[1] as? NSDictionary { 
     self?.handleWin(name, type: typeDict) 
    } } 

dies ist eine neue Syntax für wenn let 1.2 in Swift eingeführt. Es vereinfacht optionale Auspacken (Pyramide des Schicksals). Die wichtige Sache zu sammeln von diesem Handler ist, dass Sie nicht zwingen müssen, das Array zu entpacken das Objekt. Beachten Sie auch, dass ein JSON-Objekt Swift als NSDictionary ausgesetzt wird.

Verwandte Themen