【发布时间】:2016-08-15 06:16:46
【问题描述】:
我正在使用以下代码,但出现错误。
"无法将 NSURL 类型的值转换为 int32"
在这一行:
if let fileHandle = NSFileHandle(fileDescriptor: fileurl, closeOnDealloc: &err).
得到这个错误
这一行的“表达式类型模棱两可,没有更多上下文”
if !data.writeToURL(fileurl, options: .DataWritingAtomic, error: &err)
代码:
let dir:NSURL = NSFileManager.defaultManager().URLsForDirectory(NSSearchPathDirectory.CachesDirectory, inDomains: NSSearchPathDomainMask.UserDomainMask).last as NSURL
let fileurl = dir.URLByAppendingPathComponent("log.txt")
let string = "\(NSDate())\n"
let data = string.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)!
if NSFileManager.defaultManager().fileExistsAtPath(fileurl.path!) {
var err:NSError?
if let fileHandle = NSFileHandle(fileDescriptor: fileurl, closeOnDealloc: &err) {
fileHandle.seekToEndOfFile()
fileHandle.writeData(data)
fileHandle.closeFile()
}
else {
print("Can't open fileHandle \(err)")
}
}
else {
var err:NSError?
if !data.writeToURL(fileurl, options: .DataWritingAtomic, error: &err) {
print("Can't write \(err)")
}
}
【问题讨论】:
-
我看过那个帖子,但没有帮助我。
-
您应该发布一个带有相关代码的新问题并解释您遇到的问题。
-
对于第一个错误,您使用了错误的
NSFileHandle初始化程序。你没有文件描述符,你有一个NSURL。使用forWritingToURL初始化器。 -
顺便说一句 - 如果您要从 another answer 复制代码,请正确复制。
-
我复制正确,但出现其他错误 Incorrect argument labels in call (have 'forWritingToURL:error:', expected 'fileDescriptor:closeOnDealloc:')
标签: ios swift append text-files