2014-09-19 15 views
17

Jak wyprowadzić wartość NSData w Swift? Czy to jest NSLog, print lub println?Drukowanie NSData w Swift?

Wygląda na to, że mogę wydrukować adres obiektu, a nie jego rzeczywistą zawartość.

podziękowaniem

Odpowiedz

34

Więc po wypróbowaniu szereg zaleceń na całym terenie, to co rzeczywiście skończyło się pracuję dla mnie.

Swift 3

let string1 = String(data: jsonData, encoding: String.Encoding.utf8) ?? "Data could not be printed" 
print(string1) 

Swift 1

let string1 = NSString(data: jsonData, encoding: NSUTF8StringEncoding) 
println(string1) 
+0

Działa to bez prefiksu NS w Swift 2.3 W moim przypadku 'dane' jest opcjonalne, więc używam:' print (String (dane: dane? NSData(), kodowanie: NSUTF8StringEncoding)) ' –

+0

@DanielT. sprawdź datę pytania – User

+2

Nic nie jest w stanie postawić pytanie ponadczasowym. –

4

Spróbuj NSString

let theString:NSString = NSString(data: someNSData, encoding: NSASCIIStringEncoding) 
println(theString) 

Reference

convenience init(data: NSData, encoding: UInt) 
+0

' Dodatkowy argument "dane" w wywołaniu ' – User

+0

@macdonjo nie ma mowy, używa' dogodnego init (dane: NSData, kodowanie: UInt) '. Sprawdź, czy masz właściwą konfigurację. –

1

Jeśli chcesz tylko bajty (i nie wiem, czy nie jest to właściwe kodowanie string) Cię nadal można używać NSLog w trybie szybkim:

NSLog("%@", NSData(bytes: [0x1b], length:1))