2011-11-09 58 views
0

可能重複:
Is there any reason to modify the main.m file in your iOS applications?工作在iPhone編程

我在iPhone應用程序開發的新,我想知道爲什麼我們不積極使用在iphone編程中的main.m文件。我在很多書看到以下用法:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions: 



    int main(int argc, char *argv[]) 
    { 
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; 
    int retVal = UIApplicationMain(argc, argv, nil, nil); 
    [pool release]; 
    return retVal; 
    } 
+1

確切的重複 - [main.m文件在iPhone中使用](http://stackoverflow.com/questions/4252952/main-m-file-use-in-iphone)和[是否有任何理由修改主要.m文件在你的iOS應用程序?](http://stackoverflow.com/questions/7998342/is-there-any-reason-to-modify-the-main-m-file-in-your-ios-applications) – beryllium

回答

3

的iOS程序main()功能,通常在一個名爲main.m文件中找到做開始。您可能在定位此文件時遇到問題,因爲它通常位於名爲Other Sources的組中,而不是大多數代碼結束的Classes組。

在大多數iOS程序中,main()只是調用UIApplicationMain(),它創建應用程序對象並運行主事件循環。

我不知道爲什麼它會這樣做的具體細節,但我會冒險猜測,如果您在事件循環開始之前嘗試調用它,很多依賴於框架的內容將會中斷。

+0

我知道,但在程序中我們不寫在該文件上的任何代碼。我的問題是爲什麼我們不在該文件上編寫任何代碼 – Anshuman

0

main.m僅用作應用程序的入口點(從那裏開始),整個生命週期在Objective C類中處理。 方法應用程序:didFinishLaunchingWithOptions:,屬於應用程序的委託,用於在應用程序準備就緒後執行代碼。

PS:你應該儘量提高你的英語,因爲它難以閱讀和理解:P

0

您可以閱讀有關的主要功能here。這並不是說你不修改主文件,你很少這樣做。當我需要一個自定義的UIApplication子類時,我修改了過去的主函數。

int retVal = UIApplicationMain(argc, argv, @"CustomApplication", nil); 

在一般的編程,你永遠需要修改主類,但是如果你有什麼特殊要求,你可以繼續做。