Artículos con la etiqueta 'definir'

¿Cómo desarrollar en PHP con Xcode y Objective-C

¿Cuántos programadores de usar, también construir mi propia biblioteca de funciones listos para ser reutilizados en múltiples proyectos y múltiples contextos. Vamos a cambiar el título de este post, tal vez un poco arriesgado ", pero, sin embargo, como veremos, no lejos de la realidad.

En Objective-C se puede escribir y llamar a C / C + +, incluyendo el montaje, para el caso. Esta característica lo convierte en un lenguaje muy versátil y, en algunos aspectos, fenomenal. Por un lado, se puede utilizar y apreciar la sintaxis puramente de Objective-C, en el que usted puede correr más rápido el código portar escrito en ANSI C (quizás por Digital Unix o Sun) y puede encajar cómodamente en nuestro iPhone o iPad aplicaciones; por no hablar de todos los kernel BSD ya está disponible en Mac OS X!

Continuación ...

Cómo borrar NSLog () de la fuente de XCode

<a target="_blank" href="http://developer.apple.com/iphone/library/documentation/Cocoa/Reference/Foundation/Miscellaneous/Foundation_Functions/Reference/reference.html#//apple_ref/c/func/NSLog">NSLog()</a> una función útil durante las primeras etapas de un proyecto para probar y depurar una aplicación para el iPhone de Apple o, más generalmente, en el entorno XCode. Siendo sólo una función, al igual que el otro, su presencia se hará sentir, incluso cuando la liberación (release) nuestro ejecutable. potrebbero influire sulle performance della nostra applicazione, soprattutto se abbiamo inserito NSLog() all'interno di loop. Se hace necesario para eliminar, de alguna manera, todas las filas de NSLog() de nuestro código, porque ya no es necesaria, y porque las llamadas a NSLog() podría afectar el rendimiento de nuestra aplicación, sobre todo si ponemos NSLog() para 'bucle interno.

Descartar inmediatamente la solución a la "mirada" y "cancelar" porque un día podría ser usado de nuevo. Se excluye la solución de la "apariencia" y "comentarios", incómodo por la misma razón que antes. Afortunadamente, uno. Limpio, simple, y está utilizando el compilador condicionales correcta ¿Qué vamos a hacer en la práctica, y decirle al compilador que excluir - si hay una condición específica - la hora de elaborar nuestras líneas de código que contienen NSLog() .

Las directivas de compilador y las declaraciones de compilación condicional, es un muy poderoso y generalizado. Los procedentes de la elaboración de la norma ANSI-C conoce muy bien y definitivamente utilizzte en muchas situaciones. La peculiaridad de estas "instrucciones" radica en el hecho, mencionado anteriormente, para ser vistos por el compilador y ejecutable no. Esta característica los hace útiles en muchos casos y puede resolver los problemas de otro modo muy molesto.

Veamos un ejemplo de código que, como se predijo, se puede "borrar" de la compilación de código compartido, en nuestro caso NSLog() :

1
2
3
4
5
6
# Definición de una ACTIVE_NSLOG
/ / Si la constante se define ACTIVE_NSLOG llenar
/ / El bloque de código entre # ifdef y # endif
# Ifdef ACTIVE_NSLOG
" ... bla bla" ) ; NSLog (@ "... bla, bla");
# Endif

). Las instrucciones condicionales son parte del compilador de la misma familia que #define , también, de hecho, son precedidos por una "libra" ( # ). solo se ACTIVE_NSLOG è definito. En el ejemplo mostrado, hemos definido una constante ACTIVE_NSLOG , las siguientes líneas de código indica al compilador de "incluir" línea NSLog() sólo si ACTIVE_NSLOG se define. Si nos ocupamos, durante la redacción de nuestro código, para realizar llamadas a NSLog() dentro del bloque #ifdef ... #endif per far sparire, alla prossima compilazione, tutti i nostri NSLog() . #ifdef ... #endif , basta con borrar la definición de la constante ACTIVE_NSLOG a desaparecer, la siguiente compilación, todos nuestros NSLog() .

Una mejor y final

Veamos ahora cómo configurar el entorno XCode para mejorar aún más lo que hemos hecho aquí! En primer lugar se elige un nombre de constante que utilizamos en nuestros proyectos para excluir de la compilación NSLog() . o quello che preferite. Usted puede elegir el nombre que desee, desde DEBUG a MIO_DEBUG o lo que sea que usted prefiera. Abra su proyecto, nuevo o viejo. Introduzca todos los NSLog() dentro del bloque (o bloques):

1
2
3
# Ifdef MIO_DEBUG
" ... bla bla" ) ; NSLog (@ "... bla, bla");
# Endif

Seleccione el archivo principal de su proyecto, haga clic en el botón derecho y elegir la opción Obtener información.

getinfo

Esto abre una ventana con información sobre el proyecto:

userdefine

Seleccione la pestaña Crear, comprobar que está en la configuración de depuración (esta es la joya), vaya a la sección definida por el usuario y agregar, a través del botón en la parte inferior izquierda, un nuevo campo llamado OTHER_CFLAGS . En este valor assegnamoli -DMIO_DEBUG=1 . La sintaxis es -D{mia define}=1 .

Este procedimiento tiene dos ventajas:

  1. No debemos poner en el código #define MIO_DEBUG 1 , pero lo hacemos a través de la información del proyecto. Por lo tanto, cuando vamos a llenar la versión de lanzamiento (el uno sin el NSLog() ) no tiene que acordarse de eliminar la línea #define MIO_DEBUG 1
  2. La constante se define en relación a la configuración, en nuestro caso, de depuración. Por lo tanto, cambiar a la versión de configuración (la liberación) va a estar ausente y las filas constante con NSLog() no se compila

Conclusiones

El procedimiento anterior puede ser útil en otros casos moltidutine, con NSLog() , no tienen nada que hacer. Las instrucciones condicionales pueden ayudar a que el compilador en una amplia gama de contextos. A menudo son utilizados por los programadores para determinar el tipo de sistema operativo, la versión, el objetivo, la presencia de los procesadores de matemáticas, mientras que el mantenimiento de la misma "misma" fuente.

Para entender, por ejemplo, podemos utilizzre nuestra constante MIO_DEBUG también intervenir en otras áreas del código:

1
2
3
4
5
6
7
8
9
10
/ / Debug si ganan el juego
/ / Con una puntuación de 100 en vez de 10000:)
# Ifdef MIO_DEBUG
score == 100 ) if (calificación == 100)
# Else
score == 10000 ) if (puntuación == 10000)
# Endif
{
; [HaiVinto mismo];
}

Para terminar, he aquí algunos ejemplos y variantes:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/ / En general, hay
# Si la expresión
/ / Si la declaración similar a la tradicional, por lo que con una expresión de completa

/ / Comprobar si una constante se define
# Constante Ifdef

/ / Comprobar si NO es una constante definida
# Ifndef constante

/ / Else
# Else

/ / Cerrar el bloque
# Endif
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/ / Por ejemplo ...
# Define DEBUG 1
5 # define MIA_ALTRA_COSTANTE

...
# Si DEBUG
/ / Rellena el siguiente
# Else
/ / En caso contrario llenar este otro
# Endif

# Si MIA_ALTRA_COSTANTE> 4
"..." ) ; NSLog (@ "...");
# Endif
1
2
3
4
# Ifndef INCLUDE_MIO_FILE
# Definir INCLUDE_MIO_FILE
# Include "mio_file.h"
# Endif

Continuación ...

WordPress: revisión de la gestión y dell'autosave

. Las nuevas características de la versión de WordPress se puede controlar y configurar a través de define mundial WP_POST_REVISION . Su definición puede ser insertado en el archivo wp-config.php :

Continuación ...

10 razones para actualizar a Adobe Flash CS3

2007-11-21_170314 Para algunos desarrolladores sólo tienen que saber que hay una nueva versión de su paquete de desarrollo preferido para correr y comprar la actualización. Otros, con razón, más tranquilo y mantener una "mentira" para conocer la mejoría real en la nueva versión antes de cambiar sus hábitos. En el caso de Adobe Flash CS3 no hay mucho que esperar, teniendo en cuenta los muchos cambios que el paquete ha sufrido desde Macromedia fue adquirida por Adobe.
Aquí, entonces, 10 razones simples, pero importantes, que, en mi opinión personal, lo suficiente como para convencer a la actualización a Adobe Flash CS3 . Me centraré, por supuesto, sólo en las cosas que me llamó la atención personalmente, esto no pretende ser una lista exhaustiva de todas las muchas innovaciones introducidas por la suite CS3, sólo una mosca para anticipar algunas de las características de CS3.

1. Instalación

La instalación es muy agradable y rápido, en comparación con versiones anteriores. Incluye, entre otras cosas, con todos los productos de Adobe (Dreamweaver CS3, Photoshop CS3 Extended, etc ...) que hace que la instalación / desinstalación y actualización de un verdadero placer.

2. Compatibilidad con versiones anteriores

Un tema a menudo pasado por alto, pero siempre se tiene en cuenta en la historia de Flash: La capacidad de gestionar las versiones anteriores del producto. En Flash CS3 tiene todas las herramientas para manipular es migrar a las versiones anteriores de nuestras películas. Nos encontramos con esta posibilidad en la depuración (depuración de un aparte de ActionScript 2.0 y ActionScript 3.0) se encuentra en proceso de completar la película. Escribir ahora aplicaciones de ActionScript 3.0 de Flash podría ser contraproducente en ciertos contextos. Si su sitio de destino tiene un alto tráfico es posible que muchos usuarios aún no ha instalado la última versión de Flash Player para su navegador y luego no volvería a ver la película. Sin embargo, como se señaló anteriormente, Flash CS3 le permite desarrollar aplicaciones Flash de compatibilidad mantendedo y por lo tanto no veo esto como un producto de gran nell'upgrade ostocalo.

3. GUI y del IDE

Grupo mínimoFlash CS3 Nuevo Grupo El IDE de Flash CS3 (como Dreamweaver CS3) se ha revisado para mejorar. Los paneles (ver foto izquierda), a menudo incómodo en las versiones anteriores, han sido completamente rediseñado y ahora su uso es mucho menos invasiva. Paneles en el modo de icono Además, la capacidad de minimizar los paneles (ver figura a la derecha) se encuentra que hace que una interfaz real atractivo y funcional. Cuando un panel está en modo de icono ocupa mucho menos espacio y con un simple clic puede abrir el panel principal en primer lugar siempre visible.
Todos los IDE, en definitiva, ha sido revisada y la zona central con la ventana de edición y el código gráfico. No se señalan todos los cambios o si vas a arruinar la sorpresa ...

Nuevo Flash CS3 IDE

Continuación ...