繁体   English   中英

无法在Swift中将NSData标头与字符串进行比较

[英]Can't compare NSData header to string in Swift

我正在尝试将标头(NSData的第一个字节)与一个字符串进行比较,我可以成功打印该字符串,但是无法进行比较。

这是我尝试过的:

var dataHeader:NSString = NSString(bytes: data.bytes, length: min(data.length, 8), encoding: NSASCIIStringEncoding)!

println(dataHeader)
result: PK

“ PK”的ASCII为0x50 0x4B。

当我尝试以下操作时,没有任何反应:

if dataHeader == "PK" {

}

也许我是菜鸟,但是我没有任何想法,所以有人对如何解决这个问题有想法吗? 我猜想它与字符串编码有关,但是经过大量研究后,我仍然无法弄清楚。

任何帮助表示赞赏,谢谢!

如果是二进制数据,是否可能在“ PK”之后还有其他非打印字符? 字符串dataHeader的长度是dataHeader

如果之后还有其他有趣的字符,则可以截断字符串或​​使用NSString的hasPrefix:方法:

if dataHeader.hasPrefix("PK") {
  // do something
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM