writetofile 总是返回 false
Posted
技术标签:
【中文标题】writetofile 总是返回 false【英文标题】:writetofile always returns false 【发布时间】:2016-03-07 05:31:11 【问题描述】:我正在尝试快速将内容写入文件
let jsonResult = try! NSJSONSerialization.JSONObjectWithData(response.data, options: NSJSONReadingOptions.MutableContainers) as! NSDictionary
let fileManager = NSFileManager.defaultManager()
let urls = fileManager.URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)
let documentDirectory = urls.first!.path
let path = NSURL(fileURLWithPath: documentDirectory!).URLByAppendingPathComponent("data.txt")
let dict = jsonResult as NSDictionary
let status = dict.writeToFile(path.path!, atomically: false)
print(status)
但内容未写入文件,状态始终为假
【问题讨论】:
【参考方案1】:斯威夫特 2
let file = "file.txt" //this is the file. we will write to and read from it
let jsonResult : NSMutableDictionary = NSMutableDictionary.init(object: "08:00:00", forKey: "start_hour");
jsonResult.setValue("10:00:00", forKey: "end_hour");
jsonResult.setValue("30", forKey: "call_duration");
let dict = jsonResult as NSDictionary
if let dir : NSString = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.AllDomainsMask, true).first
let path = NSURL(fileURLWithPath: dir as String).URLByAppendingPathComponent(file);
//writing
dict.writeToFile(path.path!, atomically: false)
var contents : NSString
//reading
do
contents = try NSString(contentsOfFile: path.path!, encoding: NSUTF8StringEncoding)
catch
/* error handling here */
contents = ""
print(contents as String);
如果您已经有一个文件在捆绑包中,使用以下代码查找路径并读取文件。
let path = NSBundle.mainBundle().pathForResource("sample-text", ofType: "txt")
let contents: NSString
do
contents = try NSString(contentsOfFile: path!, encoding: NSUTF8StringEncoding)
catch _
contents = ""
解析 Web 服务响应:
// responseData - API response data.
// parse the result as JSON, since that's what the API provides
let getConfig: NSDictionary
do
getConfig = try NSJSONSerialization.JSONObjectWithData(responseData, options: NSJSONReadingOptions()) as! NSDictionary
catch
print("error trying to convert data to JSON")
【讨论】:
stringByAppendingPathComponent 在 xcode 7(已弃用)中不起作用。这就是我使用 URLByAppendingPathComponent 的原因。 我使用的是 xcode 7.1。我没有得到弃用的问题。但是,我已经更新了代码。 你测试过上面的例子吗?它解决了你的问题@jithin 吗? 是的,这适用于您的 json 内容,但不适用于我的 json 数据。 @jithin,你在处理网络服务响应数据吗?【参考方案2】:您无法写入应用程序的捆绑包。相反,请尝试写入应用程序的文档目录。看到这个问题:Write a file on ios
【讨论】:
@Aron Wojnowski 我先试过了。请看我修改后的问题以上是关于writetofile 总是返回 false的主要内容,如果未能解决你的问题,请参考以下文章
ios 调用writeToFile将图片保存到本地一直失败的解决方案
为啥 WinAPI FormatMessage 失败,总是返回 false