是否有完整的文档(该接口是目前在crt_externs.h
)这个功能: _NSGetArgc
和_NSGetArgv
我不能让苹果网站这个功能上的任何文件。访问命令行参数在Objective-C
回答
如果你需要做的就是在可可的命令行参数,你可以这样做:
NSArray *arguments = [[NSProcessInfo processInfo] arguments];
由于这些函数的前缀为“_”,这通常表示它们是私有的,并且不打算由您使用。如果您需要获取命令行参数,更好的方法是查找NSProcessInfo。
感谢我阅读这篇文章(http://unixjunkie.blogspot.com/2006/07/access-argc-and-argv-from-anywhere.html),我只是好奇这个功能和他们的能力从任何地方访问命令行参数。 – iPadDevloperJr 2011-02-28 20:01:30
@Evariste是的,你可以在任何地方使用它。 NSProcess信息返回有关当前进程的信息。 – s73v3r 2011-03-01 01:08:38
您也可以访问使用NSUserDefaults
由Greg Miller或Alex Rozanski在相关博客文章中描述的命令行参数。
你基本上通过调用[NSUserDefaults standardUserDefaults]
得到一个NSUserDefaults
实例,然后使用诸如boolForKey:
或stringForKey:
的消息来访问这些值。
官方Apple文档可以找到here。
我没有注意到这个答案,直到我自己找到了Alex Rozanski的帖子。任何一种描述的方法都是首选的?我倾向于使用NSUserDefaults,因为这样我不必解析参数并执行诸如确保值没有被省略的事情。我想确保没有理由不使用NSUserDefaults方法。 – GTAE86 2014-01-15 17:00:52
我不知道是否有首选方法。然而,我使用这种方法来检查命令行选项是否存在,然后通过评估'objectForKey:'返回'nil'来使用它。示例代码可以在这里找到:https://github.com/mkroehnert/SaneKit/blob/master/Tools/scantool.m#L79 – MKroehnert 2014-01-18 09:50:34
- 1. 访问命令行参数
- 2. 使用gdb访问命令行参数
- 3. 如何访问命令行参数?
- 4. 访问bash命令行参数$ @ VS $ *
- 5. Powershell访问命令行参数
- 6. 如何访问Windows命令行参数?
- 7. 命令行参数问题
- 8. 命令行参数问题
- 9. 命令行参数问题
- 10. 访问命令行
- 11. 命令类的访问参数
- 12. 是否可以在vimscript中访问vim的命令行参数?
- 13. MS访问命令行参数不工作在虚拟PC
- 14. 在Java中访问Web,命令行参数?
- 15. 如何在scrapy中访问crawlspider中的命令行参数?
- 16. 从x86 asm访问linux命令行参数的问题
- 17. 访问与命令行参数相关的整数列表
- 18. 命令行参数在C#
- 19. 命令行参数在Python
- 20. 在命令行参数
- 21. 在命令行参数
- 22. 参数在命令行shell
- 23. 命令行参数在Python
- 24. 命令行参数
- 25. 命令行参数
- 26. 命令行参数
- 27. 命令行参数
- 28. 命令行参数
- 29. 命令行参数
- 30. 命令行参数?
谢谢,但这只是从主功能确定?不像_NSGetArgc和_NSGetArgv可以在程序中的任何位置执行。 – iPadDevloperJr 2011-02-28 20:25:58
是的 - 从任何地方(我不确定是什么让你觉得它可能不好?)。 – bbum 2011-02-28 21:02:00