No1 程式啟動原理

2021-07-05 15:32:22 字數 3453 閱讀 9210

xcode6

// 1.載入info.plist,解析出來字典

// 獲取資源檔案的全路徑

nsstring *filepath = [[nsbundle mainbundle] pathforresource:@"info.plist" oftype:nil];

// file:檔案的全路徑

nsdictionary *infodict = [nsdictionary dictionarywithcontentsoffile:filepath];

// 2.從字典讀取資料

nsstring *curversion = infodict[@"cfbundleshortversionstring"];

nslog(@"%@",curversion);

nsdictionary *infodict = [nsbundle mainbundle].infodictionary;

nsstring *curversion = infodict[@"cfbundleshortversionstring"];

nslog(@"%@",curversion);

// ...表示巨集裡面的可變引數

// __va_args__表示函式裡面的可變引數

#ifdef debug // 表示當前除錯階段

#define xmglog(...) nslog(__va_args__)

#else // 發布階段

#define xmglog(...)

#endif

pch原理:就是把pch檔案中的所有內容拷貝到所有檔案的頭部

注意點:

pch檔案一定要注意做些判斷,判斷下當前是否是oc檔案,如果是就 匯入oc的**

所有的oc檔案都會定義__objc__這個巨集,蘋果定義

聯網指示器的可見性networkactivityindicatorvisible設定狀態列

系統提供了2種管理狀態列的方式

1>通過uiviewcontroller管理(每乙個uiviewcontroller都可以擁有自己不同的狀態列)

// 狀態列的樣式 - (uistatusbarstyle)preferredstatusbarstyle;

// 狀態列的可見性 - (bool)prefersstatusbarhidden;

開啟資源,**,網頁,發簡訊

// 打**

// 發簡訊

// 發郵件

// 開啟乙個網頁資源

// 獲取應用程式的象徵

// 建立通知物件

uiusernotificationsettings *settings = [uiusernotificationsettings settingsfortypes:uiusernotificationtypebadge categories:nil];

// 註冊使用者通知

// 聯網狀態

- (bool)prefersstatusbarhidden

- (ibaction)btnclick:(id)sender
delegate可處理的事件包括:

3.開啟主執行迴圈,作用接收事件,讓程式一直執行

4.載入info.plist,判斷下有木有指定main.storyboard,如果指定就會去載入

int main(int argc, char * argv) 

}

ios程式啟動完畢後,建立的第乙個檢視控制項就是uiwindow,接著建立控制器的view,最後將控制器的view新增到uiwindow上,於是控制器的view就顯示在螢幕上了

乙個ios程式之所以能顯示到螢幕上,完全是因為它有uiwindow,也就說,沒有uiwindow,就看不見任何ui介面

// 在載入info.plist檔案之後,程式啟動才完成

// 視窗顯示的注意點:

// 1.一定要強引用

// 2.控制項要想顯示出來,必須要有尺寸

// 1.建立視窗

self

.window = [[uiwindow alloc] initwithframe:[uiscreen mainscreen].bounds];

// 設定視窗的顏色

self

.window

.backgroundcolor = [uicolor purplecolor];

// 2.建立根控制器,在設定視窗的根控制器

uiviewcontroller *vc = [[uiviewcontroller alloc] init];

[vc.view addsubview:[uibutton buttonwithtype:uibuttontypecontactadd]];

// 設定視窗的根控制器,底層會自動把根控制器的view新增到視窗上,並且讓控制器的view有旋轉功能

self

.window

.rootviewcontroller = vc;

// [self.window addsubview:vc.view]; 不支援view旋轉

// 3.顯示視窗

// makekeyandvisible:讓視窗成為應用程式的主視窗,並且顯示視窗

[self

.window makekeyandvisible];

return

yes;

}

// 注意點:如果乙個鍵盤想要彈出來,必須把textfield新增到乙個控制項上.

建立和設定uiwindow的rootviewcontroller

顯示視窗

4.根據info.plist獲得主要storyboard的檔名,載入最主要的storyboard(有storyboard)

loadrunner之工作原理no 1

loadrunner 系統行為和效能的負載測試工具。廢話不多說,直接降價loadrunner的工作原理,知道原理,loadrunner的結構,操作步驟就很清晰了。loadrunner分為四大部分 1.vugen 模擬使用者業務流程,通俗的說就是錄製使用者對業務的一些操作,做成指令碼。測試的內容就是它...

順心隨筆NO 1

2016年7月30日 天氣 有些燥熱,正是三伏天,幾乎無風 一天的忙碌之後,邀一好友於高地操場跑步,汗如雨。耳機塞在耳洞,音符跳躍著,躁動著青春的節奏。這是一首龐龍的 兄弟抱一下 以後不拼啦 只想安穩有個家 變得現實啦 簡單得近乎白話的歌詞,不堆砌詞藻,卻一句句敲擊著我的心。我有些懼怕,是不是幾年 ...

迴圈結構(no 1)

for 初始化語句 判斷條件語句 控制條件語句 system.out.println sum 對 做一些精簡的變化 package cn.tedu.day02 public class for01 system.out.println sum 例題2 使用for迴圈列印100 999內的水仙花數及水...