gpt4 book ai didi

swift - 使用 Xcode 7/Swift 2 writeToPath 到资源文件调用不会失败但没有写入数据

转载 作者:搜寻专家 更新时间:2023-11-01 05:36:00 25 4
gpt4 key购买 nike

我正在使用 Xcode 7.3.1 和 Swift 2.0。我正在使用以下代码示例:

func writeToResourcesDataDir() {
if let path = NSBundle.mainBundle().pathForResource("TestData", ofType: ".json") {
let str = "Test String"
do {
try str.writeToFile(path, atomically: false, encoding: NSUTF8StringEncoding)
print("writeToFile successful")
} catch {
print("writeToFile failed")
}
} else {
print("Path does not exist")
}
}

在Xcode下运行看到“writeToFile successful”消息。
但是,同样使用模拟器,我可以在Resources目录中显示TestData并且文件没有字符串。
我还在 Mac 中使用终端窗口查看 Resources 目录中的文件,TestData 文件为空(0 字节)。
我知道我在正确的 Resources 目录中,因为该目录中还有另一个文件具有用于运行程序其他部分的正确数据。

我已经花了几天时间查看有关 writeToFile 中的数据无法正常工作的其他 google 条目,并且我已经尝试了我找到的所有修复或尝试的方法。

有人能帮忙吗?

我添加了代码以接受从对 writeToFile 的调用返回的 bool 值,它返回 false。
我不确定为什么返回 false 但未调用 catch。
我不确定如何在 Swift 2.0 中获取与此 writeToFile 一起出现的错误代码。

我也想知道这是否是写权限问题。

我应该使用 Documents 目录而不是 Data 目录吗?

最佳答案

尝试这样的事情。这是 swift 2.3 和 xcode 8。

let filename = "yourjsonfile"
let documentDirectoryURL = try! NSFileManager.defaultManager().URLForDirectory(.DocumentDirectory, inDomain: .UserDomainMask, appropriateForURL: nil, create: true)
let filePath = documentDirectoryURL.URLByAppendingPathComponent(filename)
let fileExist = filePath?.checkResourceIsReachableAndReturnError(nil)
if (fileExist == true) {
print("Found file")
} else {
print("File not found")
}

关于swift - 使用 Xcode 7/Swift 2 writeToPath 到资源文件调用不会失败但没有写入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39823159/

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