簡體   English   中英

將XML嵌入到iOS應用程序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM