¿Hay alguna documentación completa (la interfaz está presente en crt_externs.h
) sobre estas funciones: _NSGetArgc
y _NSGetArgv
no consigo toda la documentación en el sitio web de Apple sobre estas funciones.Acceso a los argumentos de línea de comandos en Objective-C
Respuesta
Si todo lo que necesita hacer es obtener los argumentos de línea de comandos en Cocoa, se puede hacer:
NSArray *arguments = [[NSProcessInfo processInfo] arguments];
Como esas funciones llevan como prefijo un "_", eso suele ser una señal de que son privadas y no deben ser utilizadas por usted. Si necesita obtener los argumentos de línea de comando, una mejor forma de hacerlo sería buscar NSProcessInfo.
Gracias estuve leyendo este artículo (http://unixjunkie.blogspot.com/2006/07/access-argc-and-argv-from-anywhere.html) y tengo curiosidad sobre estas funciones y su capacidad para acceder a los argumentos de línea de comando desde cualquier lugar. – iPadDevloperJr
@Evariste Sí, puede usarlo en cualquier lugar. NSProcess info devuelve información sobre el proceso actual. – s73v3r
También puede acceder a los argumentos de línea de comandos utilizando NSUserDefaults
como se describe en las entradas del blog por Greg Miller o Alex Rozanski.
Básicamente te dan una instancia NSUserDefaults
a través de una llamada a [NSUserDefaults standardUserDefaults]
y luego usar mensajes como boolForKey:
stringForKey:
o acceder a los valores.
La documentación oficial de Apple se puede encontrar en here.
No me di cuenta de esta respuesta hasta después de haber encontrado la publicación de Alex Rozanski por mi cuenta. ¿Se prefiere alguno de los métodos descritos? Me inclino por utilizar NSUserDefaults porque de esa forma no tengo que analizar los argumentos y hacer cosas como asegurarme de que el valor no se haya omitido. Quiero asegurarme de que no haya alguna razón para no usar el método NSUserDefaults. – GTAE86
No sé si hay un método preferido. Sin embargo, estoy usando este método para verificar si hay una opción de línea de comando antes de usarlo al evaluar si 'objectForKey:' devuelve 'nil'. El código de ejemplo se puede encontrar aquí: https://github.com/mkroehnert/SaneKit/blob/master/Tools/scantool.m#L79 – MKroehnert
- 1. Reconstrucción de los argumentos de línea de comandos de java
- 2. espacio en los argumentos de línea de comandos de Java
- 3. Acceso a la línea de comandos de bash args $ @ vs $ *
- 4. Cómo capturar los argumentos de línea de comandos de CMake?
- 5. Tratando con los argumentos de línea de comandos y Spring
- 6. Fabfiles con argumentos de línea de comandos
- 7. Argumentos de QtCreator y línea de comandos
- 8. Java argumentos de la línea de comandos
- 9. pg_dump: demasiados argumentos de línea de comandos
- 10. ¿Es posible acceder a los argumentos de línea de comandos de vim en vimscript?
- 11. Cómo pasar argumentos desde la línea de comandos a gradle
- 12. pruebas de argumentos de línea de comandos en bash
- 13. Netbeans cómo establecer argumentos de línea de comandos en Java
- 14. argumentos de línea de comandos inyectar en psake
- 15. Cómo analizar argumentos de línea de comandos en Python?
- 16. Agregar argumentos de línea de comandos con indicadores en Python3
- 17. Cómo manejar argumentos de línea de comandos en PowerShell
- 18. pasar argumentos de línea de comandos en C#
- 19. ¿Cómo paso los argumentos de la línea de comandos a una aplicación WinForms?
- 20. acceder a los argumentos de línea de comandos del paquete OSGi
- 21. Argumentos de línea de comandos de Delphi Windows Services
- 22. Argumentos de línea de comandos de WPF, una forma inteligente?
- 23. C++ argumentos de línea de comandos Eclipse CDT?
- 24. Argumentos de línea de comandos - objeto requerido: 'objshell.NameSpace (...)'
- 25. ObjectiveC que pasa alrededor ... nula terminado listas de argumentos
- 26. Barra diagonal inversa y comillas en los argumentos de la línea de comandos
- 27. ¿Cómo se especifican los argumentos de línea de comandos en Xcode 4?
- 28. Cómo ejecutar frasco con argumentos de línea de comandos
- 29. ¿Cómo se procesan los argumentos de la línea de comandos en Java Swing Application Framework
- 30. Argumentos de acceso a la secuencia de comandos Bash dentro de una función
Gracias, pero esto está bien desde la función principal? no desde ningún lugar en el programa como _NSGetArgc y _NSGetArgv puede hacer. – iPadDevloperJr
Sí, desde cualquier lugar (no estoy seguro de qué le dio la impresión de que podría no estar bien?). – bbum