在Swift中打印NSData?

25

Swift中,如何输出NSData的值?是使用NSLogprint还是println?似乎我只能打印对象的地址而不能打印实际内容。

谢谢。

3个回答

53

在尝试了该网站上的多个建议后,以下方法最终对我有效。

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)

在Swift 2.3中,这可以不使用NS前缀来工作。在我的情况下,data是可选的,所以我使用:print(String(data: data ?? NSData(), encoding: NSUTF8StringEncoding)) - Daniel T.
仅适用于合法的ASCII代码。请参见https://dev59.com/7ojca4cB1Zd3GeqPwnHe - t4ncr3d3

4

尝试使用NSString

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

参考资料

convenience init(data: NSData, encoding: UInt)

Extra argument 'data' in call - User
@macdonjo 没有办法,它使用 convenience init(data: NSData, encoding: UInt)。请检查您的配置是否正确。 - Maxim Shoustin

1
如果你只想要字节(并且不知道或者没有合适的字符串编码),你仍然可以在Swift中使用NSLog:
NSLog("%@", NSData(bytes: [0x1b], length:1))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接