2014-11-03 10 views
7

Może jakieś ciało mi pomóc dlaczego poniższy kod nie działa .. I 'm testowania go w Xcode.1 Playgroundparsowania XML w szybkim

let url:NSURL! = NSURL(fileURLWithPath:"file:///Users/sss/Documents/app.xml") 

var xml = NSXMLParser(contentsOfURL: url) 

xml?.parse() 

Odpowiedz

19

zabaw są piaskownicy, więc nie będzie mógł po prostu chwyć pliki z dowolnego miejsca w folderze użytkownika. Oto jak dodać ten plik do zabaw aby była dostępna:

  1. Znajdź swój „.playground” plik w Finderze
  2. prawym przyciskiem myszy i wybierz «Pokaż zawartość pakietu»
  3. Powinieneś zobaczyć „timeline .xctimeline”, "contents.xcplayground" i "sekcja-1.swift"
  4. Utwórz nowy folder o nazwie "Zasoby"
  5. Kopiuj "app.xml" w tym nowym folderze

Teraz twój plik będzie dostępny w piaskownicy. Możesz go pobrać z pakietu i załadować do NSXMLParser w następujący sposób:

let url: NSURL! = NSBundle.mainBundle().URLForResource("app", withExtension: "xml") 
var xml = NSXMLParser(contentsOfURL: url) 
+0

Cześć Nate Cook, dziękuję bardzo za pomoc. Teraz zrozumiałem, że plac zabaw jest piaskownym otoczeniem. Ale czy możesz mi powiedzieć, dlaczego te same 3 linie kodu nie działają w aplikacji Mac OS X. W rzeczywistości mam wymaganie w mojej aplikacji Mac, gdzie muszę parsować plik xml wybrany przez użytkownika z NSOpenPanel – appdevelopersspotlight

+0

Pominąłem twoją kontynuację, przepraszam! Jeśli nadal masz takie problemy, możesz wysłać nowe pytanie? Nie jestem całkowicie zaznajomiony z Sandboxing "NSOpenPanel" i OS X. –

+0

Jeśli podczas wprowadzania tych zmian otwarty jest plik placu zabaw, należy pamiętać o zamknięciu i ponownym otwarciu przed próbą uzyskania dostępu do plików w folderze Zasoby. –