[英]Embedding XML to iOS application
我正在用iOS開發我的第一款游戲,我需要加載一些存儲為XML的關卡。 關卡文件存儲在本地,並且在模擬器中一切正常。 但是,由於XML是在運行時加載的,因此當我嘗試在實際設備上測試游戲時,找不到XML文件,因為它們實際上不是應用程序的一部分。
我來自Flash背景,因此我可能對iOS上的操作方法有一個錯誤的認識,但我需要以某種方式將這些XML文件與應用程序捆綁在一起,或以某種方式將其嵌入代碼中? 這可能嗎?
非常感謝 :)
好了,用於查找您的應用程序捆綁包中指定文件的代碼是
NSString *path = [[NSBundle mainBundle] pathForResource:@"fileName.xml" ofType:nil]
NSURL *xmlURL = [NSURL fileURLWithPath:path];
[[NSXMLParser alloc] initWithContentsOfURL: xmlURL]
希望這對您有幫助...
您可以將XML文件添加到您的項目中,然后在運行時使用類似的內容進行讀取
NSArray *myPathList = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *myPath = [myPathList objectAtIndex:0];
NSError **err;
myPath = [myPath stringByAppendingPathComponent:fileName];
if([[NSFileManager defaultManager] fileExistsAtPath:myPath])
text = [NSString stringWithContentsOfFile:myPath encoding:NSUTF8StringEncoding error:err];
您可以考慮使用JSON而不是XML。 至少據我所知,可用的XML解析器不像SBJson那樣簡單地使用(https://github.com/stig/json-framework/)
這是我在Swift 3.0中的解決方案。 除了代碼之外,您還需要將XML文件作為數據集添加到Assets.xcassets中。 為此,請創建一個新的數據集,為其命名,然后將xml文件從查找器中拖動到新創建的數據集。 當您在代碼中引用文件時,將使用文件的文件名,而不是數據集的名稱。
var parseResults = false
if let path = Bundle.main.path(forResource: fileName, ofType: ".xml") {
let url = URL(fileURLWithPath: path)
if let xmlParser = XMLParser(contentsOf: urlToFile) {
xmlParser.delegate = self
parseResults = xmlParser.parse()
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.