Catálogo de activos vs reference de carpeta: ¿cuándo usar uno u otro?

Puedo poner files en Assets.xcassets o puedo colocar files en references de carpetas (las carpetas azules). ¿Cuándo elegiría uno sobre el otro?

Probablemente deberías usar catálogos de activos ya que eso es lo que Apple quiere que uses en el futuro (las herramientas reflejarán eso) y aportan muchas ventajas:

  • Adelgazamiento de la aplicación

  • Establecer properties de activos sin código, por ejemplo, modo de representación o split

  • No tiene que recordar las convenciones de nombres como @2x , ~ipad , -568 , etc. para get los resources específicos del dispositivo automáticamente

  • Los catálogos de activos señalarán los elementos perdidos si marca los cuadros de la derecha para las versiones y los dispositivos que admite, y proporcionan una buena visión general

  • Debe acostumbrarse a ellos ya que algunas plataforms (por ejemplo, watchOS) requieren que use catálogos de activos

Hay algunas advertencias:

  • Si se implementa de nuevo en iOS 6, algunas funciones no funcionan como se esperaba ; los catálogos de activos aún ayudan a organizar sus activos, pero las características de time de ejecución no funcionarán ya que Xcode simplemente volcará los files de imágenes simples en su package.

  • Si se implementa en iOS 7 o posterior, Xcode comstackrá todos los activos en un file .car (esa es toda la idea). Sin embargo, esto puede ser más difícil de depurar porque no puede search en el file comstackdo, y también significa que no puede simplemente get una URL de file de un único activo. Para crear una URL de file, siempre debe cargar el activo (por su nombre) y escribirlo primero en el disco. *

  • El último punto también implica que no puede usar las NSBundle (en Swift 3.0: Bundle ) para recuperar URL o routes a files de imágenes. Para cargar activos de un package que no sea el package principal, confías en Apple para proporcionar una API, lo que hacen desde iOS 8.0 . Si organiza código compartido en packages de resources e implementa iOS 7 o anterior, no debe usar catálogos de activos. Esto probablemente sea más relevante si tiene la intención de desarrollar un marco.

* Por ejemplo, la API de CoreSpotlight le permite configurar un thumbnailURL , pero si su image está dentro de un catálogo de activos, debe escribirlo en el disco por separado usted mismo o usar la propiedad thumbnailData . Si tuviera una URL de file para comenzar, nunca tendría que cargar el activo en la memory. No estoy seguro de si Spotlight podría acceder a las URL del file desde el package de la aplicación. Es solo un ejemplo.

Debería usar los activos. Muchos beneficios que las references de carpetas no pueden hacer

1) Cambiar el color de la image sin ningún código

2) Vector de soporte, pdf mejor.

3) Apoye la Slicing image .

introduzca la descripción de la imagen aquí

4) Administrar resources más fácil para autolayout. Si sus resources tienen ipad image size != iphone image size 1x, 2x, 3x y ipad image size != iphone image size , puede agregar 6 files en 1 elemento de activo.

Puede leer más aquí http://krakendev.io/blog/4-xcode-asset-catalog-secrets-you-need-to-know