-2
私のアプリにロードしたいハイキング旅行の経路情報が.GPXファイルに含まれています。リモートURL(https://dl.dropboxusercontent.com/u/45741304/appsettings/Phu_si_Lung_05_01_14.gpx)からロードするとすべてがOKですが、アプリケーションバンドルからこの同じファイルを読み込むことはできません(すでに「バンドルリソースをコピー」し、正しいターゲットメンバーシップを持っています)。Swift 3.0のメインバンドルからXMLファイルをロード
ここでは、リモートURLからこのファイルをロードするための私のコードです:
var xmlParser: XMLParser!
func startParsingFileFromURL(urlString: String) {
guard let url = URL(string: urlString) else {
print("Can't load URL: \(urlString)")
return
}
self.xmlParser = XMLParser(contentsOf: url)
self.xmlParser.delegate = self
let result = self.xmlParser.parse()
print("parse from URL result: \(result)")
if result == false {
print(xmlParser.parserError?.localizedDescription)
}
}
とメインバンドルから:アプリケーションバンドルから負荷に
func startParsingFile(fileName: String, fileType: String) {
guard let urlPath = Bundle.main.path(forResource: fileName, ofType: fileType) else {
print("Can't load file \(fileName).\(fileType)")
return
}
guard let url:URL = URL(string: urlPath) else {
print("Error on create URL to read file")
return
}
self.xmlParser = XMLParser(contentsOf: url)
self.xmlParser.delegate = self
let result = self.xmlParser.parse()
print("parse from file result: \(result)")
if result == false {
print(xmlParser.parserError?.localizedDescription)
}
}
エラー:
parse from file result: false
Optional("The operation couldn’t be completed. (Cocoa error -1.)")
あなたの提案に感謝します。私は 'let url = Bundle.main.url(forResource:fileName、withExtension:fileType)'に変更しました。 – HoangNA