Come leggere i file di risorse di text di un parco giochi con Swift 2 e XCode 7

XCode 7 Playground support le risorse del parco giochi. Posso get SKScene (fileNamed: "GameScene") quando ho un GameScene.sks nel mio Risorse o NSImage (denominato: "GameScene.png") se ho un GameScene.png nelle tue fonti.

Ma come leggere un file di text dalle risorse del parco giochi?

Solutions Collecting From Web of "Come leggere i file di risorse di text di un parco giochi con Swift 2 e XCode 7"

Possiamo usare NSBundle (). MainBundle ()

Quindi, se hai un test.son nel tuo parco giochi come

inserisci la descrizione dell'immagine qui

Puoi accedervi e printingre il suo contenuto in questo modo:

// get the file path for the file "test.json" in the playground bundle let filePath = NSBundle.mainBundle().pathForResource("test", ofType: "json") // get the contentData let contentData = NSFileManager.defaultManager().contentsAtPath(filePath!) // get the string let content = NSString(data: contentData!, encoding: NSUTF8StringEncoding) as? String // print print("filepath: \(filePath!)") if let c = content { print("content: \n\(c)") } 

Stamperà

 filepath: /var/folders/dm/zg6yp6yj7f58khhtmt8ttfq00000gn/T/com.apple.dt.Xcode.pg/applications/Json-7800-6.app/Contents/Resources/test.json content: { "name":"jc", "company": { "name": "Netscape", "city": "Mountain View" } } 

La risposta di Jeremy Chone , aggiornata per Swift 3, Xcode 8:

 // get the file path for the file "test.json" in the playground bundle let filePath = Bundle.main.path(forResource: "test", ofType: "json") // get the contentData let contentData = FileManager.default.contents(atPath: filePath!) // get the string let content = String(data: contentData!, encoding: .utf8) // print print("filepath: \(filePath!)") if let c = content { print("content: \n\(c)") } 

È ansible utilizzare String direttamente con un URL. Esempio in Swift 3:

 let url = Bundle.main.url(forResource: "test", withExtension: "json")! let text = String(contentsOf: url) 

Un altro modo breve (Swift 3):

 let filePath = Bundle.main.path(forResource: "test", ofType: "json") let content: String = String(contentsOfFile: filePath!, encoding: .utf8) 

Aggiunto provare per swift3.1:

 let url = Bundle.main.url(forResource: "test", withExtension: "json")! // let text = String(contentsOf: url) do { let text = try String(contentsOf: url) print("text: \n\(text)") } catch _ { // Error handling } // -------------------------------------------------------------------- let filePath2 = Bundle.main.path(forResource: "test", ofType: "json") do { let content2: String = try String(contentsOfFile: filePath2!, encoding: .utf8) print("content2: \n\(content2)") } catch _ { // Error handling }