你好,歡迎來到IOS教程網

 Ios教程網 >> IOS使用技巧 >> IOS7技巧 >> iOS工程文件main.m詳細解析

iOS工程文件main.m詳細解析

編輯:IOS7技巧
main.m文件是ios中的工程文件了,下面我們一起來了解一下iOS工程文件main.m詳細解析,希望這篇文章對各位有幫助。

iOS工程文件main.m其實就是一個OC一個類的.m文件,為什麼我們看到這個文件的時候不能立刻知道這個文件是一個OC類的.m文件呢?

因為1.OC類一般首字母大寫

2.OC類一般都有.h文件

先說在Xcode7.3新建工程裡的main.m文件

#import <UIKit/UIKit.h>//載入UIKit框架裡的UIKit.h文件,其實只為一個UIApplication.h裡的UIApplicationMain C語言函數
#import "AppDelegate.h"//載入AppDelegate.h文件,其實只為一個OC方法NSStringFromClass需要的參數- -,個人感覺各種小題大做了
 

 代碼如下 復制代碼 int main(int argc, char * argv[]) {
    @autoreleasepool {
        //根據控制台上打印的信息可知:
        NSLog(@"argc = %d",argc);//int argc是 1
        
        NSLog(@"argv[] count = %lu",sizeof(argv)/sizeof(argv[0]));//C char數組計數為1
        NSLog(@"argv[0] = %s",argv[0]);//打印字符串可知argv[0]是一個路徑
 
        NSLog(@"bundlePath = %@",[NSBundle mainBundle].bundlePath);//和[NSBundle mainBundle].bundlePath打印的結果對比可知,argv[0] == [NSBundle mainBundle].bundlePath為真
        //想深入了解argc,argv可參考以下網址
        //http://wenku.baidu.com/link?url=xNNFYFd3kGS0fj79e_hKbQnnO6t_TIuBln8DMuNQ-k7OQyJ9uFtzy5hpPKcwKKU3Ck1EyacMg8ybrPmH5VtdUShsL_eM2NRqi0BJlgCl5dy
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));//UIApplicationMain返回一個int類型的數字,NSStringFromClass([AppDelegate class])其實這個方法返回值就是一個NSString對象@"AppDelegate",完全可以直接寫成@"AppDelegate"
    }
}

控制台信息:

 代碼如下 復制代碼

argc = 1
argv[] count = 1
argv[0] = /Library/Developer/CoreSimulator/Devices/EA9E0AE1-9EE8-4246-AA72-F39ED66FD2F7/data/Containers/Bundle/Application/AE119964-3712-4C12-8FA7-ACB8D663E59B/TestApp.app/TestApp
bundlePath = /Library/Developer/CoreSimulator/Devices/EA9E0AE1-9EE8-4246-AA72-F39ED66FD2F7/data/Containers/Bundle/Application/AE119964-3712-4C12-8FA7-ACB8D663E59B/TestApp.app
//省略部分個人信息

超級精簡版main.m(測試可正常運行程序)

 代碼如下 復制代碼


#import <UIKit/UIApplication.h>
 
int main(int argc, char * argv[]) {
    @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, @"AppDelegate");
    }
}

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved