objective c - tutorial - Características ocultas de Xcode
objective c vs c++ (30)
1. Punto de interrupción en "objc_exception_throw"
Siempre debe tener un punto de interrupción en objc_exception_throw
.
2. La depuración retiene / libera problemas con las variables "Zombie"
Usa el siguiente código:
NSZombieEnabled = YES;
NSDeallocateZombies = NO;
... para depurar retener y liberar problemas. Para obtener más información, consulte la sección "Cómo encontrar pérdidas de memoria" en el documento de aplicaciones de depuración de Apple .
3. Saltar a una clase en Xcode desde Interface Builder
Comando ⌘ + Double-click
en un objeto en la ventana de documentos de Interface Builder para saltar a esa clase en Xcode. Esto es muy útil con el propietario del archivo .
4. Reutilizando objetos personalizados en Interface Builder
Arrastre un objeto personalizado a la biblioteca de Interface Builder para volver a utilizarlo más adelante.
5. Seleccione los elementos superpuestos en Interface Builder
Control ⌃ Shift ⇧ + Click
en un objeto en Interface Builder para ver un menú de todos los objetos debajo del mouse.
6. Guía de gestos de Interface Builder
Con una gran afluencia de novatos a Xcode, estoy seguro de que hay muchos consejos y trucos de Xcode para compartir.
¿Cuáles son los suyos?
Abrir rápidamente ...
Comando ⌘ Shift ⇧ D
Archivo > Abrir rápidamente ...
Soy un gran fan de la función Open Quickly , que es particularmente buena en Xcode 3.1 y posteriores. Cuando desee abrir un archivo o una definición de símbolo que esté en su proyecto o en un marco, simplemente presione el atajo de teclado, escriba un poco del archivo o del nombre del símbolo, use la flecha arriba ↑ y la flecha abajo para seleccionar el resultado correcto (si es necesario), y luego presione Retorno ↩ para abrir el archivo o navegar a la definición del símbolo.
En Xcode 4:
- Comando ⌘ Shift ⇧ o
Abrir rápidamente usa la palabra actual como un término de búsqueda
Además, algo que no sabía sobre Xcode hasta hace dos minutos (cuando schwa señaló en un comentario) es que, si el texto del editor está dentro de una palabra cuando se invoca Abrir rápidamente , esa palabra se usará como Abre rápidamente el término de búsqueda.
Autocompletar atajos de teclado
Pestaña ⇥ O Control ⌃ / : seleccione el siguiente argumento de autocompletar.
Shift ⇧ Tab O Shift ⇧ Control ⌃ / : Seleccione el argumento de autocompletar anterior.
Escape ⎋ : muestra la lista emergente de finalización automática.
Cambiar a encabezado / archivo fuente
Opción ⌥ Comando ⌘ Flecha arriba ↑
Ver > Cambiar a encabezado / archivo fuente
Cambia entre los archivos .m
y .h
.
- En Xcode 4 esto es ctrl Comando ⌘ Flecha arriba ↑
Desactivar la advertencia "deshacer más allá del último punto"
Cuando intente deshacer después de guardar, obtendrá el siguiente mensaje:
"Está a punto de deshacer más allá del último punto en que se guardó este archivo. ¿Desea hacer esto?"
Para deshacerse de esta advertencia, ingrese lo siguiente en una ventana de terminal:
defaults write com.apple.Xcode XCShowUndoPastSaveWarning NO
Cambiar el nombre de la empresa en los archivos de plantilla
Pega esto en la aplicación Terminal:
defaults write com.apple.Xcode PBXCustomTemplateMacroDefinitions ''{"ORGANIZATIONNAME" = "Microsoft";}''
Cambie " com.yourcompanyname
" en todas sus plantillas:
- Busque el directorio:
/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Project Templates/Application
- Use su herramienta favorita de búsqueda y reemplazo de múltiples archivos para cambiar su
com.yourcompany
por el valor que normalmente utiliza para crear un dispositivo. Usé el sistema de búsqueda y reemplazo múltiple de BBEdit después de abrir todo el directorio. Debe reemplazar el valor en todos los archivosinfo.plist
. Encontré 8 archivos para cambiar. El número de veces que una compilación ha fallado porque olvidé cambiar esta cadena es ridículo.
Salta rápidamente a un grupo en el panel Grupos y archivos
- Control ⌃ Opción ⌥ Mayús ⇧ + <Primera letra de un nombre de grupo>
Si mantiene presionadas las tres teclas anteriores, puede saltar rápidamente a grupos en la página izquierda (Grupos y archivos) presionando la primera letra del nombre de un grupo. Por ejemplo, Control ⌃ Opción ⌥ Shift ⇧ T lo lleva a Objetivos y Control ⌃ Opción ⌥ Shift S a Fuente . Púlsalo de nuevo y salta a SCM. A veces se necesitan varios intentos para que esto funcione (no sé por qué).
Ciclismo entre las opciones de autocompletado
Control ⌃ .
Shift ⇧ Control . : Cambia hacia atrás entre las opciones de autocompletar.
Control ⌃ . (Período de control) después de que una palabra acepte automáticamente la primera opción del menú de autocompletar. Intente escribir log
luego Control ⌃ . y obtendrás una buena declaración de NSLog
. Presiónelo nuevamente para recorrer cualquier opción. Para ver todas las opciones mutables, escriba NSMu
luego Control ⌃ . .
Ayuda rapida
Control ⌃ Comando ⌘ ? (Mientras tu cursor está en el símbolo para buscar)
Opción ⌥ + <Haga doble clic en un símbolo>
Ayuda> Ayuda rápida
Para acceder a la documentación desde la ventana de Ayuda rápida, haga clic en el icono del libro en la parte superior derecha.
Vea la documentación para un símbolo.
- Comando ⌘ Opción ⌥ + <Haga doble clic en un símbolo>
Te lleva directamente a la documentación completa.
Hacer selecciones de texto no adyacentes
- Comando ⌘ Control ⌃ + <Haga doble clic en el editor>
Use el atajo de arriba para una forma extraña de seleccionar varias palabras. Puede hacer selecciones de palabras en lugares totalmente diferentes, luego eliminarlas o copiarlas todas a la vez. No estoy seguro de si esto es útil. Es Xcode sólo por lo que puedo decir.
Utilice los enlaces de teclas de Emacs para navegar a través de su código
Este truco funciona en todas las aplicaciones de Cocoa en Mac (TextEdit, Mail, etc.) y es posiblemente una de las cosas más útiles para saber.
- Comando ⌘ Flecha izquierda o Comando Arrow Flecha derecha Le lleva al principio y al final de una línea.
- Control ^ a y Control ^ e Haga lo mismo
- Control ^ n y Control ^ p Mueve el cursor hacia arriba o hacia abajo una línea.
- Control ^ f y Control ^ b Mueve el cursor hacia atrás o hacia adelante un espacio
Al presionar Shift ⇧ con cualquiera de estos se selecciona el texto entre los puntos de movimiento. Coloque el cursor en el centro de una línea y presione Mayús ⇧ Control ^ e y podrá seleccionar hasta el final de la línea.
Presionando Opción ⌥ te permitirá navegar palabras con el teclado. Opción ⌥ Control ^ f salta al final de la palabra actual. Opción ⌥ Control ^ b salta al principio de la palabra actual. También puede usar la Opción con las teclas de flecha izquierda y derecha para mover una palabra a la vez.
- Control ^ Flecha izquierda y Control ^ Flecha derecha mueve el cursor entre las partes en camello de una palabra.
Pruébalo con NSMutableArray
. Puede cambiarlo rápidamente a NSArray
colocando el cursor después del NS
, presionando Mayús ⇧ Control ^ Flecha derecha y luego Eliminar .
Editor de zoom en
Si su ventana muestra los detalles y la vista del editor, puede ampliar el editor para ampliar la vista del editor a la altura completa de la ventana. (Esto es bastante fácil de encontrar, pero muchos parecen pasarlo por alto).
Puedes hacerlo usando uno de los siguientes métodos:
Comando ⌘ Shift ⇧ E
Ver > Editor de zoom en
Arrastre el divisor (entre la ventana del editor y la lista de archivos arriba).
Usando ] para insertar automáticamente [
en la ubicación correcta
Vengo de un fondo .NET, así que estoy acostumbrado a escribir un símbolo y luego escribir uno de sus nombres de método. Así que siempre olvido incluir el [
antes de comenzar a escribir el nombre del objeto. Por lo general, esto significaba que tendría que ir al principio de la línea y agregar el [
manualmente. No me di cuenta de que solo podía presionar ] en la posición actual del cursor, y se agregará automáticamente.
Hay formas de usar esto: ya sea después de escribir el nombre de la función, o justo antes de escribir el nombre de la función.
Método 1: después del nombre de la función
myObject testMethod
]
... se convierte en:
[myObject testMethod]
... con el caret posicionado después de la ]
.
Método 2: antes del nombre de la función
myObject
]
... se convierte en:
[myObject ]
... con el cursor colocado justo antes del ]
.
La ventaja de este último (2) es que la finalización del código se filtrará según los métodos de su objeto. Mientras que con el anterior (1), si intenta invocar la finalización del código inmediatamente después de myObject
, no se filtrará. Otra ventaja de (2) es que se comporta más como otros lenguajes de programación que usan la notación de puntos. Escribe el nombre del objeto entonces simplemente ] en lugar de . para acceder a un método.
Use #pragma para la organización
Puedes usar:
#pragma mark Foo
... como una forma de organizar métodos en tus archivos fuente. Al buscar símbolos a través del menú emergente, cualquier cosa que coloque en Foo
aparecerá en negrita en la lista.
Para mostrar un separador (es decir, una línea horizontal), use:
#pragma mark -
Es muy útil, especialmente para agrupar métodos de delegado u otros grupos de métodos.
Utilice el navegador de clases para mostrar los métodos heredados
La documentación de referencia de la API de Apple no muestra los métodos heredados de una superclase. A veces, sin embargo. es útil poder ver la gama completa de funciones disponibles para una clase, incluida una clase personalizada propia. Puede usar el Explorador de clases (en el menú Proyecto) para mostrar una lista plana o jerárquica de todas las clases relacionadas con un proyecto actual. El panel superior en el lado derecho de la ventana del navegador muestra una lista de métodos asociados con el objeto seleccionado en el navegador. Puede usar la hoja Configurar opciones para seleccionar "Mostrar miembros heredados" para mostrar los métodos heredados, así como los definidos por la propia clase seleccionada. Haga clic en el símbolo del libro pequeño para ir a la documentación correspondiente.
"Ctrl + Flecha izquierda / derecha" para realizar la navegación de texto entre palabras. Utilizo esta función para saltar el cursor de la "joroba de camello" en una variable a la siguiente.
Con Trackpad:
- Deslizar tres dedos hacia arriba: cambia entre el encabezado y el archivo fuente, que es más fácil que Cmd + Opt + Up ;
- Deslice tres dedos hacia abajo: cambie entre declaración y definición al seleccionar una clase o un método; encuentre estos dos tipos actualmente;
- Deslice tres dedos hacia la izquierda - Regresar ( Cmd + Opt + Izquierda );
- Deslice tres dedos hacia la derecha - Ir hacia adelante ( Cmd + Opt + Derecha );
Probado con Xcode 3.2.5.
Controla el editor de texto de Xcode desde la línea de comando: xed
> xed -x # open a new untitled document
> xed -xc foo.txt # create foo.txt and open it
> xed -l 2000 foo.txt # open foo.txt and go to line 2000
# set Xcode to be your EDITOR for command line tools
# e.g. for subversion commit
> echo ''export EDITOR="xed -wcx"'' >> ~/.profile
> man xed # there''s a man page, too
El navegador de clases en Xcode! Alcanzado presionando shift + ⌘ + c . Puedes reducir el alcance para mostrar solo tu proyecto activo. Le brinda una vista menos abarrotada siempre y cuando solo quiera navegar por la jerarquía de clases.
Haga clic derecho en una variable en su función y haga clic en editar todo en el alcance. Lo he estado usando mucho desde que me enteré de esto.
ctrl ⌘ T
Haga doble clic en los corchetes o paréntesis para obtener la coincidencia entre paréntesis y paréntesis.
Mantenga presionada la opción mientras divide las ventanas para dividirlas verticalmente en lugar de horizontalmente.
Navega entre archivos abiertos de ida y vuelta:
⌥⌘ ←
⌥⌘ →
No hay mucho de un método abreviado de teclado, pero los comentarios de TODO en la fuente se muestran en el menú desplegable método / función en la parte superior del editor.
Así por ejemplo:
// TODO: Some task that needs to be done.
aparece en la lista desplegable de métodos y funciones para que pueda saltar directamente a ella.
La mayoría de los IDE de Java muestran un marcador para estas etiquetas de tareas en la barra de desplazamiento, que es más agradable, pero esto también funciona.
Obtenga la lista completa de accesos directos del teclado Xcode de Colin Wheeler (disponible en PDF o PNG). Imprímelo y manténgalo en un lugar visible (lo tengo en la pared junto a mi pantalla).
edición: versiones actualizadas para Xcode 3.2
edición 2: versiones actualizadas para Xcode 4
Poder ver rápidamente todos los métodos que se pueden anular desde una súper clase. Por ejemplo, cuando extiendo UITableViewController acabo de escribir mi implementación:
- ta
y luego presiono ESC para ver todos los métodos de mi superclase que comienzan con "ta", como
- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
Esto también funciona cuando se adoptan protocolos.
Puede hacer que Xcode ejecute el preprocesador sobre su archivo Info.plist:
<key>CFBundleShortVersionString</key> #ifdef DEBUG <string>1.0 (debug)</string> #else <string>1.0</string> #endif
Consulte http://developer.apple.com/technotes/tn2007/tn2175.html para obtener más información.
Seleccione un bloque de texto y escriba cmd- / para comentarlo. Hazlo de nuevo para eliminar los comentarios de los personajes.
Esto es especialmente útil cuando se combina con la combinación de llaves haciendo doble clic en caracteres equilibrados (parens, llaves, paréntesis).
Técnicamente, una sugerencia de Interface Builder, pero son un par de libros combinados, así que no creo que esto esté fuera de tema ...
Mayús + Clic derecho en uno de tus controles y obtendrás una buena lista de selección de la jerarquía de objetos. ¡No más clic, clic, clic, frustración!
Xcode admite macros de texto que pueden invocarse a través del menú Insertar macro de texto al final del menú Editar . También se pueden invocar utilizando Code Sense, la tecnología de finalización de código de Xcode.
Por ejemplo, al escribir la secuencia de teclas pim control-period
insertará #import "file"
en su código, con el file
como un token editable al igual que con la finalización del código.
⌘- [y ⌘-] para sangrar y desincrustar el texto seleccionado. Facilita mucho la limpieza del código fuente.
Comando ⌘ alt ⌥ shift T : revela el archivo editado actual en el árbol del proyecto.
Ctrl + 2 : Acceda a la lista emergente de métodos y símbolos en el archivo actual.
Esto es muy útil porque con este acceso directo puede navegar a través de un archivo completamente usando el teclado. Cuando llegue a la lista, comience a escribir caracteres y la lista seleccionará el símbolo que está buscando.
Ctrl + alt + ⌘ + r para borrar el registro
⌘ Comando + Double-Click on a symbol
: Ir a Definición de un símbolo.
⌥ Opción + Double-Click on a symbol
: buscar texto en la documentación de un símbolo. (Solo funciona si tienes instalado el conjunto de documentos de su símbolo.)
Barra de favoritos:
La barra de favoritos es como la que tiene en Safari para almacenar, bueno, favoritos. A menudo lo uso como un lugar para almacenar accesos directos (que puede hacer arrastrando y soltando) a los archivos que estoy usando en este momento. Generalmente esto es más útil cuando estoy trabajando con un proyecto grande o desconocido.
Para mostrar la barra de favoritos, seleccione la siguiente opción de menú:
-
View
>Layout
>Show Favorites Bar
Depuración - cómo utilizar GDB
Siendo aún nuevo en esto, encuentro que la captura e identificación de fallas es un trabajo bastante difícil. La consola, a pesar de ser una herramienta poderosa, generalmente no produce resultados muy intuitivos y saber lo que está viendo en el depurador puede ser igualmente difícil de entender. Con la ayuda de algunos de ellos en y el buen artículo sobre la depuración que se puede encontrar en Cocoa With Love, se vuelve un poco más amigable.