2016-10-28 4 views
-2

.GPX 파일에 내 앱에로드하려는 하이킹 여행의 경로 정보가 있습니다. 원격 URL (https://dl.dropboxusercontent.com/u/45741304/appsettings/Phu_si_Lung_05_01_14.gpx)에서로드해도 문제가 없지만 앱 번들에서이 파일을로드 할 수 없습니다 (이미 "번들 리소스 복사"및 올바른 대상 멤버십이 있음).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) 
    } 

} 

주요 번들에서 :

parse from file result: false 
Optional("The operation couldn’t be completed. (Cocoa error -1.)") 

답변

1

당신에게 : 응용 프로그램 번들로부터 부하에

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) 
    } 
} 

오류 말하는 :

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 
} 

먼저 문자열 경로를 URL로 변환하는 것은 매우 어리석은 일입니다. URL을 원한다는 것을 알았으므로 url(forResource:...)으로 전화를 걸지 않은 이유는 무엇입니까?

둘째로, 을 수행하면이 문자열 경로를 URL로 바꾸기 때문에 file URL을 만들어야합니다.

+0

귀하의 제안에 감사드립니다. 'let url = Bundle.main.url (forResource : fileName, withExtension : fileType)'으로 변경했으며 현재 모든 것이 정상입니다. – HoangNA