IOS程式啟動原理(啟動過程)、UIApplication(main.m與自動生成的AppDelegate代理)
(1)UIApplication物件是應用程式的象徵,一個UIApplication物件就代表一個應用程式。
(2)每一個應用都有自己的UIApplication物件,而且是單例的,如果試圖在程式中新建一個UIApplication物件,那麼將報錯提示。
(3)通過[UIApplicationsharedApplication]可以獲得這個單例物件
(4) 一個iOS程式啟動後建立的第一個物件就是UIApplication物件,且只有一個(通過程式碼獲取兩個UIApplication物件,列印地址可以看出地址是相同的)。
(5)利用UIApplication物件,能進行一些應用級別的操作
2.應用級別的操作示例:
1)設定應用程式圖示右上角的紅色提醒數字(如QQ訊息的時候,圖示上面會顯示1,2,3條新資訊等。)
@property(nonatomic) NSInteger applicationIconBadgeNumber;
程式碼實現和效果:
- (void)viewDidLoad { [super viewDidLoad]; //建立並新增一個按鈕 UIButton *btn=[[UIButton alloc]initWithFrame:CGRectMake(100, 100, 60, 30)]; [btn setTitle:@"按鈕" forState:UIControlStateNormal]; [btn setBackgroundColor:[UIColor brownColor]]; [btn addTarget:self action:@selector(onClick) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:btn]; }-(void)onClick { NSLog(@"按鈕點選事件"); //錯誤,只能有一個唯一的UIApplication物件,不能再進行建立 // UIApplication *app=[[UIApplication alloc]init]; //通過sharedApplication獲取該程式的UIApplication物件 UIApplication *app=[UIApplication sharedApplication]; app.applicationIconBadgeNumber=123; }
2)設定聯網指示器的可見性
@property(nonatomic,getter=isNetworkActivityIndicatorVisible) BOOL networkActivityIndicatorVisible;
程式碼和效果:
//設定指示器的聯網動畫 app.networkActivityIndicatorVisible=YES;
3)管理狀態列
從iOS7開始,系統提供了2種管理狀態列的方式
a.通過UIViewController管理(每一個UIViewController都可以擁有自己不同的狀態列).
在iOS7中,預設情況下,狀態列都是由UIViewController管理的,UIViewController實現下列方法就可以輕鬆管理狀態列的可見性和樣式
狀態列的樣式 - (UIStatusBarStyle)preferredStatusBarStyle;
狀態列的可見性 -(BOOL)prefersStatusBarHidden;
#pragma mark-設定狀態列的樣式 -(UIStatusBarStyle)preferredStatusBarStyle { //設定為白色 //return UIStatusBarStyleLightContent; //預設為黑色 return UIStatusBarStyleDefault; } #pragma mark-設定狀態列是否隱藏(否) -(BOOL)prefersStatusBarHidden { return NO; }
b.通過UIApplication管理(一個應用程式的狀態列都由它統一管理)
如果想利用UIApplication來管理狀態列,首先得修改Info.plist的設定
程式碼:
//通過sharedApplication獲取該程式的UIApplication物件 UIApplication *app=[UIApplication sharedApplication]; app.applicationIconBadgeNumber=123; //設定指示器的聯網動畫 app.networkActivityIndicatorVisible=YES; //設定狀態列的樣式 //app.statusBarStyle=UIStatusBarStyleDefault;//預設(黑色) //設定為白色+動畫效果 [app setStatusBarStyle:UIStatusBarStyleLightContent animated:YES]; //設定狀態列是否隱藏 app.statusBarHidden=YES; //設定狀態列是否隱藏+動畫效果 [app setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];
c.補充
既然兩種都可以對狀態列進行管理,那麼什麼時候該用什麼呢? 如果狀態列的樣式只設置一次,那就用UIApplication來進行管理; 如果狀態列是否隱藏,樣式不一樣那就用控制器進行管理。 UIApplication來進行管理有額外的好處,可以提供動畫效果。4)openURL:方法
UIApplication有個功能十分強大的openURL:方法
- (BOOL)openURL:(NSURL*)url;
openURL:方法的部分功能有
打電話 UIApplication *app = [UIApplicationsharedApplication]; [app openURL:[NSURLURLWithString:@"tel://10086"]];
發簡訊 [app openURL:[NSURLURLWithString:@"sms://10086"]];
發郵件 [app openURL:[NSURLURLWithString:@"mailto://[email protected]"]];
開啟一個網頁資源 [app openURL:[NSURLURLWithString:@"http://ios.itcast.cn"]];
開啟其他app程式 openURL方法,可以開啟其他APP。
URL補充: URL:統一資源定位符,用來唯一的表示一個資源。 URL格式:協議頭://主機地址/資源路徑 網路資源:http/ ftp等 表示百度上一張圖片的地址 http://www.baidu.com/images/20140603/abc.png 本地資源:file:///users/apple/desktop/abc.png(主機地址省略)相關推薦
IOS程式啟動原理(啟動過程)、UIApplication(main.m與自動生成的AppDelegate代理)
(1)UIApplication物件是應用程式的象徵,一個UIApplication物件就代表一個應用程式。 (2)每一個應用都有自己的UIApplication物件,而且是單例的,如果試圖在程式中新建一個UIApplication物件,那麼將報錯提示。 (3)通過[UIApplicationsharedA
Eureka--2、第一個Eureka程式,Eureka Client的自啟動原理和簡要過程
在之前的Spring Cloud Config的基礎上,搭建簡單的Eureka Server 沒有程式碼,很多試驗做不起來,我們先建立個Eureka Server再說。 本篇主要講如何建立Eureka Server和Eureka Client,還有個重點是通過原始碼分析E
iOS-獲取Model(設備型號)、Version(設備版本)、app(程序版本)等
popu device style post short tar .html tex system IOS-獲取Model(設備型號)、Version(設備版本)、app(程序版本)等 NSLog(@"uniqueIdentifier: %@", [[UI
iOS調用系統通訊錄(適配iOS9、iOS10)(轉載)
tpi determine getc dispatch play bridge osi n) text2 由於系統的通訊錄在iOS9的時候提供了新的api,所以我們2種框架都使用。首先我們要導入框架: /// iOS 9前的框架 #import <Address
【小家java】POP(面向過程程式設計)、OOP(面向物件程式設計)、AOP(面向切面程式設計)三種程式設計思想的區別和聯絡
相關閱讀 【小家java】java5新特性(簡述十大新特性) 重要一躍 【小家java】java6新特性(簡述十大新特性) 雞肋升級 【小家java】java7新特性(簡述八大新特性) 不溫不火 【小家java】java8新特性(簡述十大新特性) 飽受讚譽 【小家java】java9
【Spring Boot】(19)、Spring Boot嵌入式Servlet容器自動配置原理
其中EmbeddedServletContainerAutoConfiguration是嵌入式Servlet容器的自動配置類,該類在spring-boot-autoconfigure-xxx.jar中的web模組可以找到。 @AutoConfig
iOS 分類(category)、類擴充套件(extension)、協議(protocol)
分類 category 使用場景分析 1.擴充套件已有的類 有大量的子類,需要新增公用方法,但又無法修改它們的父類的情形(如系統類)。 一般是大量的功能程式碼已經形成,使用子類需要新增新類的標頭檔案等。分類只能新增方法,不能新增屬性。(下文會提到如何新增屬性)2.使用父類私有方法 已經存在了
習題 12.4 寫一個程式,定義抽象基類Shape,由它派生出3個派生類:Circle(圓形)、Rectangle(矩形)、Triangle(三角形),用一個函式printArea分別輸出以上。。。
C++程式設計(第三版) 譚浩強 習題12.4 個人設計 習題 12.4 寫一個程式,定義抽象基類Shape,由它派生出3個派生類:Circle(圓形)、Rectangle(矩形)、Triangle(三
3開發一個簡單的大學人員管理程式,該程式可以管理大學的一些基本人員:學生(student)、教師(teacher)、教授(professor)。首先設計一個虛基類person。通過該類儲存人員的最
#include <iostream> #include<string.h> using namespace std; class person { private: string name,sex; int sage; public:
Delphi:記錄型別、過程指標、函式(方法)指標欄位的應用
由於工作關係使用delphi已經有一年時間,在使用中我也在不斷的摸索,在以後的實踐中我會陸續把心得寫下來,以備查閱。本文的主題是Delphi中 record型別使用中的幾點總結。 我們知道Delphi的記錄型別與C/C++的struct型別有相似
C++函式的隱藏(遮蔽)、覆蓋(override,即重寫,多型的實現原理)、過載(overload)
零、前言 (1)函式過載發生在同一個類或頂層函式中,同名的函式而具有不同的引數列表 (2)函式覆蓋(重寫)發生在繼承層次中,該函式在父類中必須是virtual,而子類的該函式必須與父類有相同的引數列表 (3)函式**隱藏(遮蔽)**發生在繼承層次中,父類和子類同
iOS開發之CGPoint、CGSize、CGRect、CGRectMake、window(視窗)、檢視(view)
一)三個結構體:CGPoint、CGSize、CGRect 1. CGPoint /* Points. */ struct CGPoint { CGFloat x; CGFloat y; }; typedef struct CGPoi
從矩陣(matrix)角度討論PCA(Principal Component Analysis 主成分分析)、SVD(Singular Value Decomposition 奇異值分解)相關原理
0. 引言 本文主要的目的在於討論PAC降維和SVD特徵提取原理,圍繞這一主題,在文章的開頭從涉及的相關矩陣原理切入,逐步深入討論,希望能夠學習這一領域問題的讀者朋友有幫助。 這裡推薦Mit的Gilbert Strang教授的線性代數課程,講的非常好,循循善誘,深入淺出。 Relevant Link:&
FSM(狀態機)、HFSM(分層狀態機)、BT(行為樹)的區別
分類 log 巡邏 其中 感到 人工智能 執行者 跳轉 藍色 遊戲人工智能AI中最常聽見的就是這三個詞: FSM 這個不用說拉,百度一大堆解釋, 簡單將就是將遊戲AI行為分為一個一個的狀態,狀態與狀態之間的過渡通過事件的觸發來形成。 比如士兵的行為有“巡邏”,“追擊敵人”,
Echo()、print()、print_r()區別
表達式 類型變量 一個 pri truct ray echo 格式化 輸出 echo可以一次輸出多個值,多個值之間用逗號分隔。echo是語言結構(language construct),而並不是真正的函數,因此不能作為表達式的一部分使用。echo是php的內部指令,不是函
Android 音頻采集——MediaRecord(編碼後錄影文件) 、AudioRecord(PCM原始數據)
listen ext 根據 任務 nbsp too 影響 按鈕 red http://blog.csdn.net/java_android_c/article/details/52619737 Android 音頻簡介 常見的音頻編解碼的類型:AAC OPUS MP3
Java的位運算符詳解實例——與(&)、非(~)、或(|)、異或(^)(僅作記錄)
out 位運算符 異或運算 pri stat 運算 data 操作 amp 位運算符主要針對二進制,它包括了:“與”、“非”、“或”、“異或”。從表面上看似乎有點像邏輯運算符,但邏輯運算符是針對兩個關系運算符來進行邏輯運算,而位運算符主要針對兩個二進制數的位進行邏輯運算。下
jquery過濾選擇器-----------(表單對象屬性過濾選擇器 與 表單選擇器)
images alt 分享 wid image logs jquery query 器) 1.表單對象屬性選擇器 2.程序 3.表單選擇器 jquery過濾選擇器-----------(表單對象屬性過濾選擇器 與 表單選擇器)
C語言中存儲類別又分為四類:自動(auto)、靜態(static)、寄存器的(register)和外部的(extern)。
字符變量 修飾 例如 register ext 進行 適合 sta -- 除法運算中註意: 如果相除的兩個數都是整數的話,則結果也為整數,小數部分省略,如8/3 = 2;而兩數中有一個為小數,結果則為小數,如:9.0/2 = 4.500000。 取余運算中註意: 該運算只適
08.SQL Server 基本操作【分離(脫機)、附加(聯機)】
原因 -1 文件的操作 刪除 方法 附加 文件 技術分享 屬性 1、創建、刪除(對準數據庫右鍵)2、分離(脫機)、附加(聯機) 關於附加數據庫失敗的處理:原因:對文件的操作權限不夠處理方法:對準mdf文件和ldf文件 右鍵 屬性 安全性將 用戶 Users