2010-02-11 52 views

回答

4

當然,你的程序有main()功能就像任何C程序。一個新的Cocoa項目默認會調用NSApplicationMain(),但你可以根據需要進行其他操作。

如果你想輕鬆地訪問從程序的其它地方的命令行信息,您可以使用_NSGetArgv()_NSGetArgc()_NSGetEnviron()_NSGetProgname()。他們宣佈crt_externs.h

extern char ***_NSGetArgv(void); 
extern int *_NSGetArgc(void); 
extern char ***_NSGetEnviron(void); 
extern char **_NSGetProgname(void); 

這裏有一個blog post有關這些功能,並以NSApplicationMaindocumentation的鏈接。

+2

+1我認爲這是我第一次見到任何返回'char ***' – 2010-02-11 20:44:55

+1

@Dave它作爲CharPtrArrayPtr更有意義,它仍然相當滿意,但看起來不像Perlesque。 – 2010-02-13 02:12:00

+0

@Jeremy認爲它是一個「指向字符串數組的指針」,這有助於我理解它。我主要困惑,爲什麼它不只是返回'char **'tho ... – 2010-02-13 06:07:30

2

你可能會發現更容易訪問NSArgumentDomain在用戶的默認值:

NSDictionary *const args = [[NSUserDefaults standardUserDefaults] 
          volatileDomainForName:NSArgumentDomain]; 

這將處理表單-NSZombieEnabled YES的論點。其他形式的參數(如-NSZombieEnabled=YES)可能會被忽略;我沒有測試過或看過源代碼。