Una forma de organizar automáticamente # importaciones en Xcode


Me encanta el comando "Organizar importaciones" en Eclipse para agregar y eliminar implícitamente clases importadas en un archivo de origen (como en Java o ActionScript).

Hay un comando en Xcode para actualizar las directivas #import en la parte superior de.m Objective-C archivos basados en las clases referenciadas dentro del archivo?

Author: Arrel, 2009-12-15

8 answers

Puede hacer esto creando una acción de Automator y usarla en Xcode, así como en todas partes en Mac OS X. Para hacer eso, haga lo siguiente:

  1. Start Automator - > New
  2. Elija"Servicio"
  3. añadir una acción "ejecutar shell script"
  4. use sort | uniq como el script y marque la casilla de verificación "salida reemplaza el texto seleccionado"
  5. guardar y darle un nombre (por ejemplo, "sort & unique")
  6. marque"Salida reemplaza el texto seleccionado"

Después de guardarlo, puede simplemente seleccione sus importaciones en Xcode, haga clic derecho y elija su acción "ordenar y único" para organizar sus importaciones.

Esto no es tan bueno como organizar acciones de importación en Eclipse o IntelliJ, porque no elimina cosas no utilizadas, etc. pero es mejor que nada.

PD: Lo obtuve de las Sesiones WWDC 2012-Sesión 402 Trabajando eficazmente con Xcode (a partir de las 6:15)

EDITAR

Empecé a usar AppCode, el IDE Objective-C de JetBrains, y ha características como "organizar importaciones". Deberías echarle un vistazo: http://www.jetbrains.com/objc/.

 64
Author: Tim Büthe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-10-02 14:55:10

Estoy resolviendo esto como no es actualmente una característica de Xcode : (

 4
Author: Arrel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-04-26 18:49:13

He encontrado atajos de Cedar para al menos ser utilizables. No es tan buena como la función de importación de Eclipse (no organiza las importaciones), pero puede evitar que tenga que ir a la parte superior de un archivo de clase y escribir una instrucción de importación. Con este plugin, simplemente coloca el cursor sobre la clase que necesita importarse y presiona Ctrl + Opción + I. Aquí está el proyecto github. https://github.com/cppforlife/CedarShortcuts

 3
Author: jstewart379,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-07-08 18:18:18

Hice un pequeño complemento de Xcode para ordenar los encabezados y eliminar duplicados del archivo con un acceso directo, ¡puede comprobarlo! - https://github.com/insanoid/CleanHeaders-Xcode

 2
Author: insanoid,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-10-21 12:43:28

AppCode de Jetbrains puede hacer esto.

 1
Author: Tim Büthe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-08-21 08:57:17

Sí. Al igual que en Eclipse, esta sería una característica impresionante ya que el desarrollo en XCode (Cocoa Touch) requiere un poco de importaciones de clase que no son fáciles de recordar y el desarrollo de Android en Eclipse lo resuelve con una simple combinación de teclas que ahorra mucho tiempo. Espero que haya una manera de hacer esto en XCode pronto !

 0
Author: Rajive Jain,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-08-13 15:28:21

WordService (freeware) de Devon Technologies, proporciona un servicio que se puede utilizar en cualquier aplicación Cocoa que pueda (entre otras) ordenar líneas.

 0
Author: Johan Kool,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-03-19 15:32:02

Alternativamente, puede usar una extensión Xcode, como Imp

 0
Author: ethamine,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-08-03 12:37:40