Използване на Plists в други среди

Ограничени ли са Pists за използване на OSX и iOS система?

Мисля за архитектурата на моето приложение и един от многото начини за импортиране на данни в приложение за iPhone е чрез Plist и можете да запазите и в него.

Сега, ако кажем, че plist може да бъде експортиран далеч от приложението в неговия необработен формат, ще бъде ли достъпен от да кажем Android или Windows Phone формат? Или ще трябва да се преобразува?

Начинът, по който разбирам, е, че Plist е XML формат, нали? Вероятно греша, но това е, което мога да направя от файла, когато го гледам.

наздраве


person jwknz    schedule 13.11.2012    source източник


Отговори (2)


Ти си прав. Plist всъщност е xml форматиран файл с plist header и може да бъде анализиран от всеки xml parser. Тъй като xml може да се използва в различни среди, plist може да направи същото. Просто сменете суфикса му на xml и можете да правите каквото искате.

person Ben Lu    schedule 13.11.2012
comment
ах, така че ще трябва да анализирам в нормален xml файл и след това отново, ако има, къде да се върна в приложението за iOS?? - person jwknz; 13.11.2012
comment
@JeffKranenburg Не е нужно да го parse в xml. Това е xml. Просто променете неговия суфикс на xml и ще откриете, че той все още се разпознава от iOS като plist и разпознаваем от други платформи. - person Ben Lu; 13.11.2012
comment
Току-що препрочетох отговора ви и открих, че коментарът ми се основава на това, което мислех, че сте написали:-) Благодаря за помощта:-) - person jwknz; 13.11.2012

Списък със свойства, както е обяснено в Ръководство за програмиране на списък със свойства, е някое от следните неща:

  • струна
  • петно ​​от двоични данни
  • дата
  • цяло число
  • число с плаваща запетая
  • булева стойност
  • масив от списъци с имоти
  • речник, чиито ключове са низове и чиито стойности са списъци със свойства

Има два често срещани начина за сериализиране на списък със свойства.

Единият е XML форматът, за който знаете. Този формат е нещо като документиран на plist(5) справочна страница.

Другият е двоичен формат, който е много по-компактен и по-бърз за кодиране и декодиране. Не е официално документиран никъде, но форматът му е описан в коментарите и кода на CFBinaryPlist.c, който е включен в версията с отворен код на рамката Core Foundation на Apple.

Ако вашите данни не използват дати или двоични петна, може да ви е по-лесно да използвате JSON, отколкото XML plist. Започвайки от iOS 5 и OS X 10.7 (Lion), Apple предоставя NSJSONSerialization клас за сериализиране и десериализиране на JSON и има JSON библиотеки за почти всяка платформа и език под слънцето.

person rob mayoff    schedule 13.11.2012
comment
Ще разгледам това, благодаря:-) Приложението ще използва дати, а също и координати на местоположението, така че не съм сигурен дали JSON начинът ще работи. Освен това все още е в моя списък с неща за научаване:-) - person jwknz; 13.11.2012
comment
Имайте предвид, че можете да представите датите като низове или като числа, ако трябва да ги съхранявате в JSON. Просто ще трябва да направите това преобразуване сами. Нито JSON, нито списъците със свойства поддържат координати на местоположение като собствен тип. - person rob mayoff; 13.11.2012
comment
Само още един въпрос, ако нямате нищо против - XML ​​на път ли е? Нямам много положително отношение към него и JSON изглежда става популярен. Дали това е лично предпочитание за вас, или това е просто начинът да отидете? - person jwknz; 13.11.2012
comment
Не бих казал, че е на път да излезе напълно. Просто е пресилено за много случаи на употреба, но нямаше популярна, по-проста алтернатива, докато не се появи JSON. Това е тема на много публикации в блогове, така че просто напишете „xml е гадно“ или „json е гадно“ в Google, когато ви се прииска да отлагате. :) - person rob mayoff; 13.11.2012
comment
Това е страхотно:-) Jut ми даде още една причина да разгледам JSON - благодаря за съвета и помощта ви:-) - person jwknz; 13.11.2012
comment
Освен това, ако използвате plists и сте човек от командния ред, ще намерите командите plutil и /usr/libexec/PlistBuddy за полезни. Google ги. - person rob mayoff; 13.11.2012