是否有完整的文檔(該接口是目前在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