int main(int argc, char *argv[])
{
strncpy(argv[1], "fookBar", 7);
return NSApplicationMain(argc, (const char **)argv);
}
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
// Insert code here to initialize your application
NSArray *args = [[NSProcessInfo processInfo] arguments];
}
applicationDidFinishLaunching中的args数组不显示main中对argv [1]所做的更改。 ?。为什么?
答案 0 :(得分:0)
“NSApplicationMain本身忽略了argc和argv参数。相反,Cocoa通过_NSGetArgv,_NSGetArgc和_NSGetEnviron间接获取其参数(请参阅参考资料)。”
这就是为什么即使你在main中对argv进行更改,也不会反映在applicationDidFinishLaunching中