RootViewController *rvController = [[RootViewController alloc] initWithNibName:@"RootViewController" bundle:[NSBundle mainBundle]];
有時我看到它使用零,我不知道它究竟是什麼用途?iPhone中[NSBundle mainBundle]的含義是什麼?
RootViewController *rvController = [[RootViewController alloc] initWithNibName:@"RootViewController" bundle:[NSBundle mainBundle]];
有時我看到它使用零,我不知道它究竟是什麼用途?iPhone中[NSBundle mainBundle]的含義是什麼?
以下是一個確切的解釋:
在其中搜索 筆尖文件的包。此方法首先查找軟件包的 語言特定的項目目錄 中的 nib文件,然後查找資源 目錄。如果爲零,則對於主包中的筆尖文件,此方法看起來爲 。
我認爲[NSBundle mainBundle]不會做任何不同於你放置nil的東西。但是,如果你想要做國際化和本地化,您可以使用它們
這種方法分配,並且如果一個不存在初始化包對象。新對象對應於應用程序可執行文件所在的目錄。務必檢查返回值以確保您擁有有效的捆綁包。即使對於非捆綁應用程序,此方法也可能會返回有效的捆綁包對象。
通常,主包對應於應用程序文件包或應用程序包裝:一個承載應用程序名稱並用「.app」擴展名標記的目錄。
根據文檔,initWithNibName:bundle:只在你傳入nil時調用它。
在其中搜索筆尖文件束。該方法首先在包的特定於語言的項目目錄中查找nib文件,然後查找Resources目錄。如果爲零,則此方法將在主包中查找nib文件。
所以,兩者是等價
感謝你提醒,婁佛朗哥 – RAGOpoR 2010-08-03 02:50:37
感謝你提醒,vodkhang – RAGOpoR 2010-08-03 02:48:59