<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      IOS的Application以及IOS目錄的介紹

      1.UIApplication介紹

      1 1.UIApplication對象是應用程序的象征
      2 2.每一個應用都有自己的UIApplication對象,而且是單例的
      3 3.通過[UIApplication sharedApplication] 可以獲得這個單例對象
      4 4.一個ios程序啟動后創建的第一個對象就是UIApplication對象
      5 5.利用UIApplication對象,能進行一些應用級別的操作

      //設置應用程序圖標右上角的紅色提醒數字

      1 @property(nonatiomic) NSInteger applicationIconBadgeNumber;

       

       

      //設置聯網指示器的可見性

      1 @property (nonatomic,getter=isNetworkActivityIndicatorVisible)BOOL networkActivityIndicatorVisible;

      IOS7中的狀態欄

       1 從IOS7 開始,系統提供了2中管理狀態欄的方式
       2 通過 UIViewController管理(每一個UIViewController都可以擁有自己不同的狀態欄)
       3 通過UIApplication管理(一個應用程序的狀態欄都由它統一管理)
       4 
       5 在IOS7中,默認情況下,狀態欄都是由UIViewControoller管理的,
       6 UIViewController實現下列方法就可以輕松管理狀態欄的可見性和樣式
       7 
       8 狀態欄的樣式
       9 -(UIStatusBarstryle)preferredStatusBarStryle;
      10 
      11 狀態欄的可見性
      12 -(BOOL)prefersStatusBarHidden;

       

      如果想利用UIApplication來管理狀態欄,首先得修改Info.plist的設置

       

       

      UIApplication的openURL方法

       1 -(BOOL)openURL :(NSURL*) url;
       2 
       3 openURL:方法的部分功能有
       4 //打電話
       5 UIApplication *app =[UIApplication shareApplication];
       6 [app openURL:[NSURL URLWithString:@"tel://10086"]];
       7 
       8 //發短信
       9 [app openURL:[NSURL URLWithString:@"sms://10086"]];
      10 
      11 //發郵件
      12 [app openURL:[NSURL URLWithString:@"mailto://12345@qq.com"]];
      13 
      14 //打開一個網頁資源
      15 [app openURL:[NSURL URLWithString:@"http://ios.itcast.cn"]];

       

      UIApplication 和delegate

      1 1.所有的移動操作系統都有個致命的缺點:app很容易受到打擾.比如一個來電,會導致app進入后臺甚至被終止
      2 
      3 2.還有很多其他類似的情況會導致app受到干擾,在app受到干擾時,會產生一些系統事件,這時UIApplication會通知它的delegate對象,讓delegate代理來處理這些系統事件
      4 
      5 delegate可處理的事件包括:
      6 應用程序的生命周期事件(如程序啟動和關閉)
      7 系統時間(如來電)
      8 內存警告

       

      注:每次新建完項目,都有個帶有"AppDelegate"字眼的類,它就是UIApplication的代理

        NJAppDelegate默認已經遵守了UIApplicationDelegate協議,已經是UIApplication的代理

       

       

       

      2.application啟動的路徑

       1 Supporting Files --->main.m
       2 int main(int argc, char * argv[])
       3 {
       4     @autoreleasepool {
       5         /*
       6          argc: 系統或者用戶傳入的參數個數
       7          argv: 系統或者用戶傳入的實際參數
       8          
       9          */
      10         // return UIApplicationMain(argc, argv, nil, NSStringFromClass([NJAppDelegate class]));
      11         
      12         // return UIApplicationMain(argc, argv, @"UIApplication", NSStringFromClass([NJAppDelegate class]));
      13         
      14         /*
      15          1.根據傳入的第三個參數創建UIApplication對象
      16          2.根據傳入的第四個產生創建UIApplication對象的代理
      17          3.設置剛剛創建出來的代理對象為UIApplication的代理
      18          4.開啟一個事件循環
      19          */
      20          return UIApplicationMain(argc, argv, @"UIApplication", @"NJAppDelegate");
      21     }
      22 }

      3.application生命周期

       1 // 當應用程序啟動完畢的時候就會調用(系統自動調用)
       2 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
       3 {
       4     // Override point for customization after application launch.
       5     NSLog(@"didFinishLaunchingWithOptions");
       6     return YES;
       7 }
       8 // 即將失去活動狀態的時候調用(失去焦點, 不可交互)
       9 - (void)applicationWillResignActive:(UIApplication *)application
      10 {
      11     NSLog(@"ResignActive");
      12 }
      13 
      14 // 重新獲取焦點(能夠和用戶交互)
      15 - (void)applicationDidBecomeActive:(UIApplication *)application
      16 {
      17 
      18     NSLog(@"BecomeActive");
      19 }
      20 
      21 // 應用程序進入后臺的時候調用
      22 // 一般在該方法中保存應用程序的數據, 以及狀態
      23 - (void)applicationDidEnterBackground:(UIApplication *)application
      24 {
      25 
      26     NSLog(@"Background");
      27 }
      28 
      29 // 應用程序即將進入前臺的時候調用
      30 // 一般在該方法中恢復應用程序的數據,以及狀態
      31 - (void)applicationWillEnterForeground:(UIApplication *)application
      32 {
      33 
      34     NSLog(@"Foreground");
      35 }
      36 
      37 // 應用程序即將被銷毀的時候會調用該方法
      38 // 注意:如果應用程序處于掛起狀態的時候無法調用該方法
      39 - (void)applicationWillTerminate:(UIApplication *)application
      40 {
      41 
      42 }
      43 
      44 // 應用程序接收到內存警告的時候就會調用
      45 // 一般在該方法中釋放掉不需要的內存
      46 - (void)applicationDidReceiveMemoryWarning:(UIApplication *)application
      47 {
      48     NSLog(@"MemoryWarning");
      49 }
      50 @end

      Supporting Files--->UIApplication-Prefix.pch文件

      //表示所有的.m文件都自動引用 
      
      #ifdef __OBJC__
          #import <UIKit/UIKit.h>
          #import <Foundation/Foundation.h>
      #endif

       程序啟動的完整過程

       1 1.main函數
       2 
       3 2.UIApplicationMain
       4 * 創建UIApplication對象
       5 * 創建UIApplication的delegate對象
       6 
       7 3.delegate對象開始處理(監聽)系統事件(沒有storyboard)
       8 * 程序啟動完畢的時候, 就會調用代理的application:didFinishLaunchingWithOptions:方法
       9 * 在application:didFinishLaunchingWithOptions:中創建UIWindow
      10 * 創建和設置UIWindow的rootViewController
      11 * 顯示窗口
      12 
      13 3.根據Info.plist獲得最主要storyboard的文件名,加載最主要的storyboard(有storyboard)
      14 * 創建UIWindow
      15 * 創建和設置UIWindow的rootViewController
      16 * 顯示窗口

       

       

      UIWindow

       1     UIWindow是一種特殊的UIView,通常在一個app中只會有一個UIWindow
       2 
       3     IOS程序啟動完畢后,創建的第一個視圖控件就是UIWindow,接著創建控制器的view,最后將控制器的view添加到UIWindow上,于是控制器的view就顯示在屏幕上了
       4 
       5     一個IOS程序之所以能顯示到屏幕上,完全是因為它有UIWindow也就說,沒有UIWindow,就看不見任何UI界面
       6 
       7 
       8 添加UIView到UIWindow中兩種常見方式:
       9 1)//直接將view添加到UIWindow中,但并不會理會view對應的UIViewController
      10 -(void)addSubview:(UIView *)view;
      11 
      12 2)//自動將rootViewControoler的view添加到UIWindow中,負責管理rootViewController的生命周期
      13 @property(nonatomic,retain) UIViewController *rootViewController;
      14 
      15 
      16 常用方法:
      17 //讓當前UIWindow變成keyWindow(主窗口)
      18 -(void)makeKeyWindow:
      19 
      20 //讓當前UIWindow變成keyWindow,并顯示出來
      21 -(void)makeKeyAndVisible;
      22 
      23 //打開UIWindow列表,這樣就可以接觸應用中的任何一個UIView對象(平時輸入文字彈出的鍵盤,就處在一個新的UIWindow中)
      24 [UIApplication sharedApplication].windows
      25 
      26 //用來接收鍵盤以及非觸摸類的消息事件的UIWindow,而且程序中每個時刻只能有一個UIWindow是keyWindow.如果某個UIWindow內部的文本框不能輸入文字,可能是因為這個UIWindow不是keyWindow
      27 [UIApplication sharedApplication].keyWindow
      28 
      29 //獲得某個UIView所在的UIWindow
      30 view.window

       

      四大對象關系圖

       

      Info.plist

       1 1.建立一個項目后,會在Supporting files文件夾下看到一個 "工程名-Info.plist"的文件,該文件對工程做一些運行期的配置,非常重要,不能刪除
       2 2.在舊版本Xcode創建的工程中,這個配置文件的名字就叫"Info.plist"
       3 3.項目中其他的 plist 文件不能帶有 "info" 這個字眼,不然會被錯認為是傳說中非常重要的 "info.plist"
       4 4.項目中還有一個 InfoPlist.strings的文件,跟Info.plist文件的本地化相關
       5 
       6 
       7 info.plist常見的一些屬性
       8 
       9 //本地化相關
      10 1)Localiztion native development region(CFBundleDevelopmentReginon)
      11 
      12 //程序安裝后顯示的名稱,限制在10-12個字符,如果超出,將被顯示縮寫名稱
      13 Bundle display name(CFBundleDisplayName)
      14 
      15 //app圖標名稱,一般為Icon.png
      16 Icon file(CFBundleIconFile)
      17 
      18 //應用程序的版本號,每次往App Store上發布一個新版本時,需要增加這個版本號
      19 Bundle version(CFBundleVersion)
      20 
      21 //主stroryboard文件的名稱
      22 Main storyboard file base name(NSMainStoryboardFile)
      23 
      24 //項目的唯一標識,部署到真機時用到
      25 Bundle identifier(CFBundleIdentifier)

      pch文件

       1 1.項目的Supporting files文件夾下面有個 "工程名-Prefix.pch"文件,也是一個頭文件
       2 2.pch頭文件的內容能被項目中的其他所有源文件共享和訪問
       3 3.一般在pch文件中定義一些全局的宏
       4 4.在pch文件中添加下列預處理指令,然后在項目中使用Log(...)來輸出日志信息,就可以在發布應用的時候,一次性將NSLog語句移除(在調試模式下,才有定義DEBUG)
       5 #ifed DEBUF
       6 #define Log(...) NSLog(_VA_ARGS__)
       7 #else
       8 #define Log(...)
       9 #endif
      10 ...

       

      posted @ 2015-05-27 23:19  王世楨  閱讀(2043)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 熟妇无码熟妇毛片| 欧美三级欧美成人高清| 国产精品自拍自在线播放| av在线网站手机播放| 华池县| 激情综合网激情国产av| 九九热在线观看免费视频| 久久亚洲av午夜福利精品一区 | 国产激情一区二区三区午夜| 欧美成人午夜精品免费福利| 9久9久热精品视频在线观看| 大香蕉av一区二区三区| 精品av无码国产一区二区| 中文字幕乱妇无码av在线| 亚洲二区中文字幕在线| 亚洲日本va午夜蜜芽在线电影 | 成人免费乱码大片a毛片| 少妇尿尿一区二区在线免费| 亚洲精品成人一二三专区| 99久久99久久久精品久久| 人妻系列中文字幕精品| 免费看美女被靠到爽的视频| 精品国产乱弄九九99久久| 2019国产精品青青草原| 人妻少妇精品视频专区| 宅男噜噜噜66在线观看| 免费现黄频在线观看国产| 互助| 久久综合色之久久综合色| 噜噜久久噜噜久久鬼88| 久久精品国产99久久久古代 | 成人拍拍拍无遮挡免费视频| 女同在线观看亚洲国产精品| 国产-第1页-浮力影院| 虎白女粉嫩尤物福利视频| 999久久久免费精品播放| 香蕉亚洲欧洲在线一区 | 久久久久久伊人高潮影院| 老妇xxxxx性开放| 国产成人精品2021欧美日韩| 微拍福利一区二区三区|