Time of Update: 2017-01-18
今天,做了一個下載器的Demo,即從本地配置的Apache伺服器上,下載指定的檔案。這次,我們下載伺服器根目錄下的html.mp4檔案。按照慣例,我們先建立一個URL對象和請求。 NSURL *url = [NSURL URLWithString:@"http://127.0.0.1/html.mp4"];NSURLRequest *request = [NSURLRequest requestWithURL:url];
Time of Update: 2017-01-18
一、引言作為MVC設計模式中的C,Controller一直扮演著項目開發中最重要的角色,它是視圖和資料的橋樑,通過它的管理,將資料有條有理的展示在我們的View層上。iOS中的UIViewController是UIKit架構中最基本的一個類。從第一個UI視圖到複雜完整項目,都離不開UIViewController作為基礎。基於UIViewController的封裝和擴充,也能夠出色的完成各種複雜介面邏輯。這裡旨在討論UIViewController的生命週期和屬性方法,在最基礎的東西上,往往會得
Time of Update: 2017-01-18
在程式中如果需要監聽電話狀態,可以引入CoreTelephony架構,這個架構套件含了電話相關的API,可以實現監測來電,查看電訊廠商資訊等功能。下面就是具體的實現監測來電的代碼。一定要把center寫成一個單獨的屬性,並且是強引用(strong),否則如果在viewDidLoad方法裡建立center,viewDidLoad方法調用完後center就銷毀了,就無法檢測到來電了。一個通話最初的狀態為呼入(CTCallStateIncoming)和呼出(CTCallStateDialing),當接
Time of Update: 2017-01-18
一、矩陣座標CATransform3D定義了一個變化矩陣,通過對矩陣參數的設定,我們可以改變layer的一些屬性,這個屬性的改變,可以產生動畫的效果。CATransform3D CATransform3DMakeTranslation (CGFloat tx, CGFloat ty, CGFloat
Time of Update: 2017-01-18
-(void)viewWillAppear:(BOOL)animated{NSArray *array=self.tabBarController.view.subviews;UIView *view=array[2];view.frame=CGRectMake(0, [UIScreen mainScreen ].bounds.size.height, [UIScreen mainScreen ].bounds.size.width, 49);[UIView commitAnimations];
Time of Update: 2017-01-18
一、何為CookieCookie是網站為了便是終端身份,儲存在終端本地的使用者憑證資訊。Cookie中的欄位與意義由服務端進行定義。例如,當使用者在某個網站進行了登入操作後,服務端會將Cookie資訊返回給終端,終端會將這些資訊進行儲存,在下一次再次訪問這個網站時,終端會將儲存的Cookie資訊一併發送到服務端,服務端根據Cookie資訊是否有效來判斷此使用者是否可以自動登入。二、iOS中進行Cookie管理的兩個類iOS中進行HTTP網路請求Cookie管理主要由兩個類負責,一個類是NSHTT
Time of Update: 2017-01-18
一、引言隨著autolayout的推廣開來,更多的app開始使用自動布局的方式來構建自己的UI系統,autolayout配合storyBoard和一些第三方的架構,對於建立約束來說,已經十分方便,但是對於一些動態線性布局的視圖,我們需要手動添加的約束不僅非常多,而且如果我們需要插入或者移除其中的一些UI元素的時候,我們又要做大量的修改約束的工作,UIStackView正好可以解決這樣的問題。二、在storyBoard上初識StackViewUIStackView是一個管理一組堆疊視圖的控制器類別
Time of Update: 2017-01-18
播放音效iOS開發過程中可能會遇到播放音效的功能其實很簡單,iOS已經提供了一個架構直接負責播放音效 AudioToolbox.framework建立項目 TestWeChatSounds給建立的項目匯入AudioToolbox.framework匯入成功之後如下圖項目目錄如下接下來我們給項目中添加幾個caf格式的音效檔案接下來 我們開啟 項目預設產生的ViewController中添加代碼匯入 AudioToolbox複製代碼 代碼如下:#import
Time of Update: 2017-01-18
定義為了避免請求寄件者與接收者耦合在一起,讓多個對象都有可能接收請求,將這些對象串連成一條鏈,並且沿著這條鏈傳遞請求,直到有對象處理它為止,職責鏈模式又稱為責任鏈模式,它是一種對象行為型模式。(如果你接觸過異常處理,那麼套用異常處理機制可以更好地理解)。職責鏈可以是一條直線,也可以是一個環,還可以是一個樹形結構,不過最常見的職責鏈是直線型,即沿著一條單向的鏈來傳遞請求。鏈上的每一個對象都是請求處理者,職責鏈模式可以將請求的處理者組織成一條鏈,並使請求沿著鏈傳遞,由鏈上的處理者對請求進行相應的處理
Time of Update: 2017-01-18
何為迭代器模式?
Time of Update: 2017-01-18
何為組合模式?
Time of Update: 2017-01-18
1.概述在軟體開發過程中,應用程式可能會根據不同的情況作出不同的處理。最直接的解決方案是將這些所有可能發生的情況全都考慮到。然後使用if... ellse語句來做狀態判斷來進行不同情況的處理。但是對複雜狀態的判斷就顯得“力不從心了”。隨著增加新的狀態或者修改一個狀體(if else(或switch
Time of Update: 2017-01-18
概述抽象原廠模式是對象的建立模式,它是Factory
Time of Update: 2017-01-18
概述 我們知道簡單原廠模式的優點是去除了用戶端與具體產品的依賴,缺點是違反了“開放-關閉原則”;Factory 方法模式克服了簡單原廠模式的缺點,將產品的建立工作放到具體的工廠類,每個工廠類負責產生一個產品。但是在實際應用中,一個工廠類只建立單個產品的情況很少,一般一個工廠類會負責建立一系列相關的產品,如果我們要設計這樣的系統,Factory
Time of Update: 2017-01-18
面板模式(Facade),為子系統中的一組介面提供一個一致的介面,此模式定義 一個高層介面,這個介面使得這一子系統更加容易使用。下面給大家展示一下類的結構圖,想必大家一看就明白了:其實這個模式中,沒有類與類之間的繼承關係,只是進行了簡單的類引用,統一了對外的介面而已。看起來是不是很簡單?廢話不多說了,下面簡單向大家展示一下代碼吧!注意:本文所有代碼均在ARC環境下編譯通過。SubSystemOne類介面複製代碼 代碼如下:#import
Time of Update: 2017-01-18
裝飾器模式可以在不修改代碼的情況下靈活的為一對象添加行為和職責。當你要修改一個被其它類包含的類的行為時,它可以代替子類化方法。一、基本實現下面我把類的結構圖向大家展示如下:讓我們簡單分析一下上面的結構圖,Component是定義一個對象介面,可以給這些對象動態地添加職責。ConcreteComponent是定義了一個具體的對象,也可以給這個對象添加一些職責。Decorator,裝飾抽象類別,繼承了Component,從外類來擴充Component類的功能,但對於Component來說,是無需知道
Time of Update: 2017-01-18
Time of Update: 2017-01-18
這次介紹一下策略模式(Strategy Pattern),相比之下是一種比較簡單的模式。它也叫政策模式(Policy Pattern)。 策略模式使用的就是物件導向的繼承和多態機制,其他的沒有什麼玄機。策略模式適合使用在: 1. 多個類只有在演算法或行為上稍有不同的情境。 2. 演算法需要自由切換的情境。 3. 需要屏蔽演算法規則的情境。
Time of Update: 2017-01-18
策略模式是一種常見的軟體設計模式,這裡簡單得介紹一下策略模式並用IOS簡單實現一下。
Time of Update: 2017-01-18
接下來我們要講圖片的塗鴉,我們分開一點一點拓展,先給圖片上劃線建立項目 起名testAddLine接下來我們在預設產生的ViewController中添加一張圖片 待用同時添加一個按鈕 複製代碼 代碼如下:- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view,