標籤:本文轉自long458的專欄,連結為http://blog.csdn.net/long458/article/details/41981273大體上,OC中常用的數組排序有以下幾種方法:sortedArrayUsingSelector:;sortedArrayUsingComparator:;sortedArrayUsingDescriptors:1、簡單排序(sortedArrayUsingSelector:)如果只是對字串的排序,可以利用sortedArrayUsingSelector
標籤:知識回顧一、自訂構造方法二、description方法說明:這個Objective-C專題,是學習iOS開發的前奏,也為了讓有物件導向語言開發經驗的程式員,能夠快速上手Objective-C。如果你還沒有編程經驗,或者對Objective-C、iOS開發不感興趣,請忽略。學習本專題之前,建議先學習C語言專題。回到頂部知識回顧在第5講中已經介紹了如何定義類和建立並初始化對象,比如有Student這個類1.Student.h1 #import
標籤:構造方法 構造方法的重寫 自訂構造方法 構造方法的情境 super關鍵字 ———————————————————————————————————————————super關鍵字的使用#import <Foundation/Foundation.h>@interface Animal :
標籤:一、UIView常見屬性 (1)@property(nonatomic,readonly)UIView *superview; //擷取自己的父控制項對象 (2)@property(nonatomic,readonly,copy)UIView *subviews;//擷取自己的所有子控制項對象 (3)@property(nonatomic)NSInteger
標籤:繼承 什麼是繼承?繼承的優點和缺點?繼承是指一個對象直接使用另一對象的屬性和方法。繼承需要符合的關係:is-a(比如狗是犬科動物,貓是貓科動物)如何尋找父類?把眾多子類的公用部分抽離出來,形成一個類,即父類子類繼承父類,子類具有父類的屬性和行為,以及自身特殊的屬性和行為。(即子類功能比較強大)繼承的優點:1.抽出重複的代碼2.建立類與類之間的關係缺點:耦合性高特點:OC中只允許單一繼承,因為多繼承會有“致命方塊”定義一個子類:在.h檔案中 Super關鍵
標籤: 分類(Category):可以給某一個類擴充一些方法(不修改原來類的代碼) 作用:在不改變原來類內容基礎上,可以為類增加一些方法 使用注意: 1. 只能增加方法,不能增加成員變數 2. 分類方法實現中可以訪問原來類中的成員變數 3. 分類可以重新實現原來類中的方法,會覆蓋原來類的方法,導致原來類的方法無法再使用 4.
標籤:動態類型檢測 回應程式法 ———————————————————————————————————————————動態類型檢測代碼:#import <Foundation/Foundation.h>@interface Animal : NSObject-(void)run;-(void)abc;@end@implementation Animal-(void)run{
標籤:本文轉載至
標籤:我接下來所要講得是複合帶著問題學習會快一點什麼是複合? 有什麼優點?什麼時候用複合?什麼是依賴關係?如何解決?複合就是將一些個體組件組合起來形成一個整體。(一個類定義另一個類作為執行個體變數)優點:1.將其他對象引用到新建立的對象中,形成新的整體,功能更加強大。2.耦合度較小(相對於繼承)繼承是“is a”是一個,複合是“has
標籤:類似於js裡面的閉包,java中的匿名函數,C#的委託,可以將func當做參數傳遞:1.Block的聲明 Block的定義和函數的聲明差不多,就是把函數名改成(^blockName)即可。下面是block聲明的代碼。 有傳回值的int (^sumBlock) (int, int); 無傳回值的 void
標籤:點文法點文法的本質是方法調用成員變數的範圍@public : 在任何地方都能直接存取對象的成員變數 @private : 只能在當前類的對象方法中直接存取(@implementation中預設是@private) 子類如果想訪問通過setter getter方法訪問 @protected : 可以在當前類及其子類的對象方法中直接存取 (@interface中預設是@protected) @package :
標籤: 摘要只要用到Objective-C,我們每天都會跟方法調用打交道。我們都知道Objective-C的方法決議是動態,但是在底層一個方法究竟是怎麼找到的,方法緩衝又是怎麼運作的卻鮮為人知。本文主要從源碼角度探究了Objective-C在runtime層的方法決議(Method resolving)過程和方法緩衝(Method cache)的實現。簡介本文作者來自美團酒店旅遊事業群iOS研發組。我們致力於創造價值、提升效率、追求卓越。歡迎大家加入我們(簡曆請發送到郵箱
標籤:本文目錄前言一、傳統的get方法和set方法二、使用點文法代替傳統的get方法和set方法三、點文法和self的陷阱四、一點小建議說明:這個Objective-C專題,是學習iOS開發的前奏,也為了讓有物件導向語言開發經驗的程式員,能夠快速上手Objective-C。如果你還沒有編程經驗,或者對Objective-C、iOS開發不感興趣,請忽略。學習本專題之前,建議先學習C語言專題。回到頂部前言在Java中,我們可以通過"對象名.成員變數名"來訪問對象的公用成員變數,這個就稱為"點文法"。
標籤:1. [ ] 表示發送訊息 [receiver message] 會被編譯器轉化為:objc_msgSend(receiver, selector)如果含有參數objc_msgSend(receiver, selector, arg1, arg2, ...) 2. Runtime 術語 執行個體對象有個isa的屬性,指向Class, 而Class裡也有個isa的屬性, 指向meteClass. 這裡就有個點, 在Objective-C中任何的類定義都是對象,
標籤:本文目錄一、Java中的this只能用在動態方法中,不能用在靜態方法中二、OC中的self既可以用在動態方法中,也可以用在靜態方法中說明:這個Objective-C專題,是學習iOS開發的前奏,也為了讓有物件導向語言開發經驗的程式員,能夠快速上手Objective-C。如果你還沒有編程經驗,或者對Objective-C、iOS開發不感興趣,請忽略。學習本專題之前,建議先學習C語言專題。OC中有一個self關鍵字,用法跟Java中的this類似,都是代表著當前方法的調用者。但self和thi
標籤:類方法 匿名類 new和allocinit的區別 ———————————————————————————————————————————類方法 ①類方法: + 開頭的方法(已定義流程形式和對象方法一樣,只不過 + 開頭,這是唯一的區別)
標籤:本文目錄一、什麼是null 指標和野指標二、野指標和null 指標例子說明:這個Objective-C專題,是學習iOS開發的前奏,也為了讓有物件導向語言開發經驗的程式員,能夠快速上手Objective-C。如果你還沒有編程經驗,或者對Objective-C、iOS開發不感興趣,請忽略。學習本專題之前,建議先學習C語言專題。回到頂部一、什麼是null 指標和野指標1.null 指標1> 沒有儲存任何記憶體位址的指標就稱為空白指標(NULL指標)2> null 指標就是被賦值為0
標籤:本文目錄知識回顧一、自訂構造方法二、description方法說明:這個Objective-C專題,是學習iOS開發的前奏,也為了讓有物件導向語言開發經驗的程式員,能夠快速上手Objective-C。如果你還沒有編程經驗,或者對Objective-C、iOS開發不感興趣,請忽略。學習本專題之前,建議先學習C語言專題。回到頂部知識回顧在第5講中已經介紹了如何定義類和建立並初始化對象,比如有Student這個類1.Student.h1 #import
標籤: 方法一: NSString *str = @"abcdefg"; NSMutableString *reverseString = [NSMutableString string]; for (int i = str.length - 1; i >= 0; i--) { char c = [str
標籤:本文目錄一.開啟Xcode,建立Xcode項目二.選擇最簡單的命令列項目三.輸入項目名稱,選擇Foundation架構進行建立項目四、點擊Run,運行項目說明:這個Objective-C專題,是學習iOS開發的前奏,也為了讓有物件導向語言開發經驗的程式員,能夠快速上手Objective-C。如果你還沒有編程經驗,或者對Objective-C、iOS開發不感興趣,請忽略。學習本專題之前,建議先學習C語言專題。回到頂部一.開啟Xcode,建立Xcode項目 回到頂部二.選擇最簡單的命