常見的文件以級4大對象

/**ios

摘要:c++

掌握項目中常見的文件以級4大對象數組

*/網絡

 

1、項目中常見文件app

"Xcdoe5與Xcode6的項目結構"框架

 

》Info.plist是整個項目的重要配置文件不能刪除iphone

(1)Localization native development regionide

"本地化相關"函數

 

(2)Bundle display nameoop

"程序安裝後顯示在iphone/ipad上的名字"

 

(3)Icon file

"程序的圖標,Xcode5之前建立的項目有,通常用Icon.png,Xcode5之後建立的不在plist設置,在Images.xcassets設置"

 

(4)Bundle version

"程序版本號,AppStore每更新版本,版本要增長,內部項目管理的版本號,不對外"

 

(5)'Bundle versions string, short'

"用於itunes上顯示的版本號,即對外的版本。通常3個數組成"

 

(6)Bundle identifier

"應用的唯一標識,發佈到AppStore去"

 

 

》InfoPlist.Strings

"本地化【國際化】多語言版本"

 

 

》pch文件講解

"【pch文件幹什麼用?】"

(1)pch文件裏的內容被項目中的其它全部資源共享訪問

(2)定義宏 身高、電話,其它文件共享使用

(3)自定義日誌輸入

/*

 *掌握什麼是DEBUG模式

 *爲何日誌要在DEBUG下才輸出,由於日誌只對開發人員有用,發佈,安裝到手機上,給誰看(SB看得懂)?

 */

 

#ifdef DEBUG//

#define Log(...) NSLog(__VA_ARGS__)

#else

#define Log(...) 

#endif

(4)使用頻繁的文件放在pch裏

 

(5)理解在pch中#ifdef __OBJC__的意思

/*

* 在#ifdef __OBJC__裏面的資源只能在.m .mm文件中被使用

* .m文件是純Object-C 文件 .mm是Object-C和C++混合文件

* 在#ifdef __OBJC__外面的資源,全部文件都能訪問

*/

 

(6)定義一個Person類型,添加name屬性,把Person類添加在#ifdef __OBJC__外頁面,在添加一個C++文件,編譯出現問題

緣由:c++不能使用Foundation框架,Foundation框架是屬性OC

 

"總結:通常公用的資源寫在#ifdef __OBJC__裏面"

 

(7)如何在Xcode6建立的項目中添加pch文件

 

2、四大對象

/*

 *1.UIApplication

 *2.UIApplicationDelegate

 *3.AppDelegate

 *4.UIWindow

 */

》UIApplication

"【什麼是UIApplication?】"

(1)UIApplication是整個應用程序的象徵,就像中國的象徵是五星紅旗

(2)每個應用都有本身的UIApplication,並且是單例,經過[UIApplication sharedApplication]獲取

//什麼是單例,程序運行到結束,只能有一個對象

//若是[[UIApplication alloc] init]建立對象,程序不被容許,由於application只有能一個對象

(3)ios程序啓動後建立的第一人對象就是UIApplication對象

 

 

"【UIApplication用來幹什麼】"

(1)用來設置全局性的東西

如:

設置網絡請求狀態/取消網絡請求狀態 application.networkActivityIndicatorVisible = YES;

設置應用圖標數字/清除圖標數據 application.applicationIconBadgeNumber = 2

 

設置狀態欄樣式

方式1.由控制器的一個方法決定【-(UIStatusBarStyle)preferredStatusBarStyle】

方式2.使用application設置【application.statusBarStyle = UIStatusBarStyleLightContent;】"可是不起做用"

//緣由:默認狀態欄樣由控制器來管理,若是想用application設置狀態欄有效,得在Info.plist的設置View controller-based status bar appearance = NO

 

(2)打電話、發短信、發郵件、打開網站

//調用application 的 openURL方法 【[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"mailto://1012@qq.com"]];】

//注:只演示打開網站,後面真機調試的時候,會演示打電話、發短信、發郵件

 

》iOS程序的啓動過程

UIApplicationMain函數講解"PPT"

UIApplicationDelegate方法介紹"PPT"

/*爲何要開啓【Main Runloop】事件循環

 1. 監聽事件,事件由是NSRunLoop 類處理,RunLoop監視操做系統的輸入源,若是沒有事件數據, 不消耗任何CPU 資源。

 2. 若是有事件數據,run loop 就發送消息,通知各個對象"

 */

 

 

》UIApplicationDelegate

(1)UIApplication有一個delegate屬性

(2)UIApplication的delegate的對象必須遵循UIApplicationDelegate協議

(3)UIApplicationDelegate協議能夠知道程序的運行狀態

//掌握UIApplicationDelegate的幾個方法

 

 

"總結:掌握程序的啓動過程並熟記"

 

 

 

》UIWindow

"【什麼是UIWindow】"

(1)窗口是用來顯示控制器的View的

(2)每個應用程序都有一個窗口

(3)打開文檔 Cocoa Touch Layer — UIKit — Guides— View Controller Programming Guide for iOS - Screens, Windows, and Views Create Visual Interfaces

查看窗口結構示意圖

 

"【玩弄窗口】"

(0)去除storybaord選項

(1)在didFinishLaunchingWithOptions中建立窗口,併成爲主窗口並可見

//- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

//

//    //建立窗口

//    UIWindow *window = [[UIWindow alloc] init];

//    window.frame = [UIScreen mainScreen].bounds;

//    window.backgroundColor = [UIColor whiteColor];

//

//    self.window = window;

//    //成爲主窗口

//    //[self.window makeKeyWindow];

//

//    //成爲主窗口並可見

//    //[self.window makeKeyAndVisible];

//

//    return YES;

//}

 

(2)窗口是一個特殊的UIView對象,能夠往window添加子控件,如label switch控件

 

(3)通常不會在窗口添加子控件,會設置窗口的rootViewController屬性,將控制器的view添加到窗口上

//若是直接把控制器的view添加到窗口是不能讓控制的view進行旋轉

//但設置窗口的根控制器,控制器的view能夠旋轉

//由於旋轉事件傳遞是由UIApplication - UIWindow【窗口不作旋轉處理,只有控制器纔會作旋轉處理】 - 控制器

 

(4)獲取主窗口方式

*一個窗口當前能接受鍵盤和非觸摸事件時,便被認爲是主窗口。

*[UIApplication sharedApplication].delegate.window

*[UIApplication sharedApplication].keyWindow

*self.view.window

 

(5)畫圖理下UIApplication APPDelegate UIWindow RootViewController的關係

 

(6)指定storyboard,會本身建立窗口,並設置成爲主窗口,並設置窗口的根控制器

 

(7)鍵盤是添加在新的窗口中,叫UITextEffectsWindow;

 

做業:註冊頁面

相關文章
相關標籤/搜索