¿Por qué las listas de propiedades no usan más tipos de elementos XML? [cerrado]

-2

La mayoría del software almacenaría información en XML de esta forma:

<book>
  <title>Generic Examples, the Internet, and You</title>
  <length pages="43" />
  <authors>
    <person>Yolanda Squatpump</person>
    <collective>
      Anonymous 1
      Anonymous 2
      <et.al />
    </collective>
  </authors>
</book>

Mientras que .plist s de Apple se asemejaría a:

<plist version="1.0">
<dict>
  <key>Label</key>
  <string>book</string>
  <key>title</key>
  <string>Generic Examples, the Internet, and You</string>
  <key>length</key>
  <dict>
    <key>pages</key>
    <integer>43</integer>
  </dict>
  <key>authors</key>
  <dict>
    <key>person</key>
    <string>Yolanda Squatpump</string>
    <key>collective</key>
    <array>
      <string>Anonymous 1</string>
      <string>Anonymous 2</string>
    </array>
  </dict>
</dict>
</plist>

¿Por qué?

    
pregunta Josh Tilles 01.11.2012 - 18:24

1 respuesta

2

Me imagino que la razón principal es que las listas de propiedades están diseñadas para ser fácilmente accesibles por los programas de Objective-C. Cada programa iOS y OS X utiliza como mínimo una lista de propiedades para comunicar información básica sobre sí mismo al sistema, y la mayoría los usa con frecuencia en su código, especialmente para almacenar preferencias (esta es la razón por la que la mayoría de las configuraciones de aplicaciones son accesibles a través de defaults comando).

Las listas de propiedades en Obj-C se definen como un tipo de diccionario que contiene solo cadenas, números, matrices, fechas, bytes en bruto y otros diccionarios. Prescribir exactamente qué tipos puede contener una lista de propiedades significa que puede acceder a cualquiera y saber qué esperar. Permitir más elementos XML de forma libre aumentaría la complejidad y requeriría una gran cantidad de trabajo para volver a trabajar el código existente, sin mucho beneficio.

    
respondido por el robmathers 01.11.2012 - 18:44

Lea otras preguntas en las etiquetas