当尝试在iOS中编码URL时,NSURLConnection完成了错误 – 代码-1002
我试图编码一个URL。 当我在我的包中编码文件时,代码工作正常。 但是当我尝试编码写入Documents and Cache的文件时,程序无法编码。
这是我的编码器:
private class func EncodeURL(_ url:URL,encoding:UInt) ->String { do{ return try NSString(contentsOf: url, encoding: encoding) as String }catch{} return "" }
我使用以下三个:
content = EncodeURL(url, encoding: String.Encoding.utf8.rawValue) content = EncodeURL(url, encoding: 0x80000632) content = EncodeURL(url, encoding: 0x80000631)
而且它们都不起作用。
这是我用来生成文件的代码。 我把它们放在Documents文件夹中。
func writeFile(fileName:String,data:NSData)->Bool{ guard let filePath = createFilePath(fileName: fileName) else{ return false } return data.write(toFile:filePath,atomically:true) } func createFilePath(fileName:String)->String?{ let dir = getCachePath() if(!dirExists(dir: dir) && !createDir(dir: dir)){ return nil } let filePath = dir + fileName if(fileExists(path: filePath)){ do{ try getFileManager().removeItem(atPath: filePath) }catch{ return nil } } return filePath } func getCachePath()->String{ var cacheDir = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.documentDirectory, .userDomainMask, true).first! if(!cacheDir.hasSuffix("/")){ cacheDir += "/" } cacheDir += CACHEPATH + "/" //CACHEPATH is just NSHomeDirectory() return cacheDir } writeFile(fileName: String(timeInterval)+"_"+somestring+".txt", data: data! as NSData)
以上是我生成文件的方式。
我如何通过URL是:
url = URL(string:getCachePath()+bookname+".txt")
将此传递给
EncodeURL(url:URL,encoding:UInt)
我的url是:
/用户/ houki /库/开发商/ CoreSimulator /设备/ 67C921C8-18A3-4A3F-81FF-C3AF04E88049 /数据/容器/数据/应用/ 85633861-90E6-4DB8-95B0-86C359C74C6B /文件//用户/ houki /库/开发商/ CoreSimulator /设备/ 67C921C8-18A3-4A3F-81FF-C3AF04E88049 /数据/集装箱/数据/应用/ 85633861-90E6-4DB8-95B0-86C359C74C6B / 1511757881.83107_bigbrother.txt
这看起来很奇怪吗? 我在模拟器上测试它。
但实际上,当我尝试通过路径读取文件时,这工作正常。 以下代码正在运行。
let contentsofPath = try FileManager.default.contentsOfDirectory(atPath: getCachePath())
您没有正确创建URL
。 您正在将路径传递给string
参数。 您需要使用URL(fileURLWithPath:)
初始化程序。
let url = URL(fileURLWithPath: path)
如果您传递的字符串是以URL方案开头的有效URL,则仅使用URL(string:)
初始值设定项。