Chcę utworzyć grę, która będzie korzystać z systemu poziomów. Więc chcę przechowywać moje poziomy i móc je zmieniać podczas gry (aby zapisać stan). Postanowiłem więc użyć XML do przechowywania poziomów. Znalazłem NSXmlParser klasy do czytania z XML, ale nie mogę znaleźć pisarz, aby zapisać stan poziomu. W mojej grze stan poziomu i poziom są bardzo podobne (mam dużo ruchomych obiektów), więc nie chcę przechowywać danych stanu poziomu oddzielonych od poziomu, do którego należy. Problem polega na tym, że nie mogę znaleźć sposobu łatwego modyfikowania plików XML na iPhonie. Może używam złego podejścia.Pisarz XML iOS klasa
Odpowiedz
Możesz użyć biblioteki C libary libxml2
do odczytu i zapisu XML. Oto krótkie wprowadzenie: Cocoa Samurai: Getting Some XML Love with libXML2.
Czy zastanawiałeś się jednak nad używaniem CoreData lub implementacją protokołu NSCoding
? NSCoding
byłoby łatwiej dodać do istniejących klas.
Jeśli rzucisz dane w NSDictionary
, można zrobić (z zastrzeżeniami):
[myDictionary writeToFile:pathToPlist atomically:YES];
Spróbuj open source XML stream writer for iOS:
- napisane w Objective-C, pojedynczy .h . i .m plik
- Jeden @protocol wsparcie dla przestrzeni nazw i jeden bez
Przykład:
// allocate serializer
XMLWriter* xmlWriter = [[XMLWriter alloc]init];
// start writing XML elements
[xmlWriter writeStartElement:@"Root"];
[xmlWriter writeCharacters:@"Text content for root element"];
[xmlWriter writeEndElement];
// get the resulting XML string
NSString* xml = [xmlWriter toString];
To daje następujący ciąg znaków XML:
<Root>Text content for root element</Root>
LGPL nie jest (moim zdaniem) dobrą licencją na projekty iOS. Oznacza to, że jeśli chcę użyć twojego kodu, jestem zobowiązany do wydania mojej aplikacji w postaci do ponownego połączenia (tj. Muszę zwolnić pliki obiektów, co mogłem zrobić, ale jest to dodatkowa trudność). Czy rozważałeś zamiast tego używać Publicznej Licencji Mozilli? To zobowiązuje ludzi do wydania zmian, które wprowadzają do plików licencjonowanych MPL, ale nie wymaga zwolnienia plików obiektów. – JosephH
Im mniej kłopotów dla wszystkich, tym lepiej. Dodałem licencję GNU z pełną permisywnością, ponieważ nie jest tak, że jakiekolwiek zmiany stron trzecich zostaną wprowadzone do biblioteki w najbliższym czasie. – ThomasRS
Polecam korzystania KissXML. Autor rozpoczął w podobnej sytuacji jak ty i stworzył wrapper API kompatybilny z NSXML wokół libxml. Omawia opcje i decyzje here na swoim blogu.
Może to być również duplikat: http://stackoverflow.com/questions/3849270/iphone-how-to-write-xml-files/3973554#3973554 – codelark
- 1. Pisarz XML i strumień pamięci C#
- 2. iOS - XML Dość Drukuj
- 3. Spring + hibernacja klasa mapowania bez xml
- 4. parsowanie xml w iOS swift
- 5. Play Scala: pisarz json dla klas zagnieżdżonych
- 6. Pisarz CSV w Pythonie z niestandardowym cytowaniem
- 7. Wielowątkowy pojedynczy czytnik pojedynczy pisarz kolejka fifo
- 8. Procesory iOS OCMock częściowy vs klasa
- 9. Która klasa/kod iOS zwraca północ magnetyczną?
- 10. Parsowanie lokalnego pliku xml w iOS sdk
- 11. Analizowanie Xml w samouczku na iOS
- 12. XML do konwersji JSON w iOS
- 13. binarny plik XML linia nr 26: Błąd klasa pompowania android.widget.TextView
- 14. android.view.InflateException: linia binarny plik XML # 6: Błąd pompowania klasa fragemnt
- 15. Dlaczego klasa XML-Serializable potrzebuje konstruktora bez parametrów
- 16. pisarz maszynowy wyrzuca błąd TS2300: Zduplikowany identyfikator "moment"
- 17. Jak mogę wykorzystać zarówno stan, jak i pisarz w haskell?
- 18. Klasa ogólna klasa
- 19. Błąd klasa pompowania - NestedScrollView - klasa nie znaleziono
- 20. Klasa uniwersalna dla systemu Mac OS i iOS
- 21. Klasa abstrakcyjna lub pomocnik Klasa
- 22. Klasa podstawowa vs Klasa użyteczności
- 23. ZipPackage Klasa vs Zipfile klasa
- 24. Ustawianie klasa UICollectionViewLayout w Storyboard
- 25. Rejestrowanie pliku GPX (lub XML) do otwarcia w aplikacji iOS
- 26. abstrakcyjna klasa dziedziczy inną klasa abstrakcyjna problem
- 27. laravel - use Klasa żądania lub klasa wejściowa
- 28. Dlaczego decltype (klasa klasa :: :: :: członkiem klasy) ważny
- 29. Klasa Singleton kontra klasa z elementem statycznym
- 30. statyczne członek klasa klasa własnego typu
to bez użycia xml, tak? – Andrew
@Andrew wynikowy plik będzie XML (konkretnie w formacie Plist) –