gpt4 book ai didi

string - 无法转换从本地文件读取的 NSData 并在 Swift 中输出为字符串

转载 作者:行者123 更新时间:2023-11-28 09:09:46 26 4
gpt4 key购买 nike

好吧,我正在尝试创建一个简单的工具来从项目中的文件中读取特定的偏移地址。

我可以很好地读取它并获取字节,问题是我想将结果转换为字符串,但我做不到。

我的输出是这样的:<00000100 88000d00 02140dbb 05c3a282> 但我想进入字符串。

找到了一些使用 NSData 扩展的示例,但仍然没有用。

所以有人可以帮忙吗??

这是我的代码:

class ViewController: UIViewController {

let filemgr = NSFileManager.defaultManager()

override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.

let pathToFile = NSBundle.mainBundle() .pathForResource("control", ofType: "bin")
let databuffer = filemgr.contentsAtPath(pathToFile!)
let file: NSFileHandle? = NSFileHandle(forReadingAtPath: pathToFile!)

if file == nil {
println("File open failed")
} else {
file?.seekToFileOffset(197584)
let byte = file?.readDataOfLength(16)

println(byte!)
file?.closeFile()
}
}
}

最佳答案

只要知道编码,就可以像这样从 NSData 对象创建字符串

let str = NSString(data: data, encoding: NSUTF8StringEncoding)

顺便说一下,您可能想尝试使用 if let 来解包您的可选值而不是强制解包,以解决失败的可能性:

let filemgr = NSFileManager.defaultManager()
if let pathToFile = NSBundle.mainBundle() .pathForResource("control", ofType: "bin"),
databuffer = filemgr.contentsAtPath(pathToFile),
file = NSFileHandle(forReadingAtPath: pathToFile)
{
file.seekToFileOffset(197584)
let bytes = file.readDataOfLength(16)
let str = NSString(data: bytes, encoding: NSUTF8StringEncoding)
println(str)
file.closeFile()
}
else {
println("File open failed")
}

关于string - 无法转换从本地文件读取的 NSData 并在 Swift 中输出为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29639741/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com