例如:
/var/mobile/Containers/Data/Application/0A0091C2-7BC5-484F-BDBB-B2ABF305BB09/
完整的绝对文件路径是:
/var/mobile/Containers/Data/Application/0A0091C2-7BC5-484F-BDBB-B2ABF305BB09/libary/bgb.xml
问题很奇怪,因为如果我将模拟器中的文件路径(作为绝对路径)更改为我的/Download/bgb.xml目录,我可以加载该文件.
这是我的代码:
var filepath = IOOPs().getDirectoryPath().stringByAppendingString("/bgb.xml") if(NSfileManager.defaultManager().fileExistsAtPath(filepath)){ print(" file xml existIErt") var filedata : NSData if let tmpData = NSData(contentsOffile: filepath){ parser = NSXMLParser(data: NSData(contentsOffile: filepath)!) } } parser.delegate = self parser.parse()
fileExistsAtPath(文件路径) – >评估为真
NSData(contentsOffile:filepath) – >评估Null / Nil
只有来自模拟器或移动设备的带路径才会出现此问题.
这是下载和解压缩的代码:
let datei = NSData(contentsOfURL: NSURL(string: "http://www.gesetze-im-internet.de/bgb/xml.zip")!)! print ( getDirectoryPath()) print("bgb.zip") speicherGesetzAufMobilemEndgerät(getDirectoryPath().stringByAppendingString("/bgb.zip"),datei: datei ) unzipfile(getDirectoryPath().stringByAppendingString("/bgb.zip"),destinationPath: getDirectoryPath().stringByAppendingString("/bgb.xml") ) func unzipfile(myZipfile: Nsstring,destinationPath : Nsstring){ let unZipped = SSZipArchive.unzipfileAtPath(myZipfile as! String,toDestination: destinationPath as! String);}解决方法 尝试从本地路径创建NSURL:
NSData(contentsOfURL: NSURL(fileURLWithPath: filePath))总结
以上是内存溢出为你收集整理的ios – 无法从移动或模拟器文件系统加载NSData(contentsOfFile:文件路径),但它可以从OS X文件系统运行全部内容,希望文章能够帮你解决ios – 无法从移动或模拟器文件系统加载NSData(contentsOfFile:文件路径),但它可以从OS X文件系统运行所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)