2011-03-23 10 views
10

En mi aplicación, todas las imágenes, páginas HTML locales, etc. están marcadas como "Crear contenido de acción". Acabo de darme cuenta de que también hay un "Recurso".MonoDevelop: ¿qué es la acción de compilación "Contenido" en comparación con "Recurso"?

¿Cuál debo utilizar para las imágenes y cuál de las páginas HTML para mostrar en un UIWebView?

Actualmente uso de imágenes como esta:

this.oImgLoginLogo.Image = UIImage.FromFile ("Data/Images/ball.png"); 

Pero en Monotouch.Dialog veo esta línea:

static UIImage arrow = Util.FromResource (null, "arrow.png"); 

Pero arrow.png también se marca como "contenido" ...?

desconcertado.

¿Cuáles son los/disdavantages ventajas de cada opción?

+0

Los tenemos incrustados y se muestran mediante una vista web. Luego, si hay conectividad, se carga una versión actualizada del HTML del servidor. – Krumelur

Respuesta

2

En el mundo .NET, la diferencia es que durante el proceso de creación de un archivo marcado como contenido se copia en la carpeta de salida, mientras que un archivo de recursos se convierte en parte de la propia DLL.

yo sepa, MonoTouch no incluye recursos en la construcción, debido a que no existe en IOS, así que por eso que siempre utilice contenido. Un paso final luego comprime el directorio con el ejecutable y los archivos de contenido en el archivo .app, que es como iOS lo espera. Lo mismo es válido para MonoDroid.

La diferencia entre MonoTouch y MonoDroid en la API existe porque la idea de esos marcos es traducir, casi uno a uno, las API disponibles en esas plataformas, en lugar de crear una interfaz que admita todas las plataformas por igual.

+0

¡Gracias por la explicación! – Krumelur

7

Los recursos incrustados están incrustados en el archivo dll o exe, y son accesibles desde las API de reflexión .NET. Los archivos de contenido son recursos del paquete y se copian en el paquete de la aplicación (que es simplemente un directorio), y se puede acceder a ellos usando API de archivos o API del paquete Apple de MonoTouch.

MonoTouch hace de soporte incrustado recursos, pero no son fáciles de utilizar desde las API de Apple-específica, que están diseñados para usar las cosas desde el paquete de aplicación. Sin embargo, los recursos integrados pueden tener más sentido cuando no se trata de API específicas de MonoTouch, o cuando se escriben bibliotecas que son portátiles para otras plataformas.

MonoTouch 4.0+ es compatible con archivos de contenido en librerías DLL - detrás de las escenas que están destrozados en recursos incrustados cuando se compila la biblioteca, para que puedas compartirlo como un solo archivo DLL, a continuación, que están desempaquetado en el paquete de la aplicación cuando se compila la aplicación.

Supongo que MonoTouch.Dialog usaba recursos incrustados y no combinaba recursos porque es una biblioteca y es anterior a MonoTouch 4, por lo que el archivo marcado como Contenido es un error en el proyecto.

+0

Genial escuchar eso mhutch. Nunca tuve la necesidad de utilizar recursos integrados, ya que la mayoría de las veces los recursos son solo imágenes y archivos de texto, pero siempre es bueno saber que la opción está ahí. –

Cuestiones relacionadas