Time of Update: 2015-08-20
標籤:本文轉自long458的專欄,連結為http://blog.csdn.net/long458/article/details/41981273大體上,OC中常用的數組排序有以下幾種方法:sortedArrayUsingSelector:;sortedArrayUsingComparator:;sortedArrayUsingDescriptors:1、簡單排序(sortedArrayUsingSelector:)如果只是對字串的排序,可以利用sortedArrayUsingSelector
Time of Update: 2015-08-19
標籤:Windows環境下搭建Objective-C開發環境 目前來說,如果真的想用Xcode來運行Objective-C程式,那麼可以用虛擬機器裝Mac OS X或者裝黑蘋果(在PC機上安裝蘋果的系統,不建議),不過這兩種方式都有些麻煩,以下介紹GNUstep以及Code blocks來實現,具體方法如下。在我的雲端硬碟下載所需工具:連結: http://pan.baidu.com/s/1i34b8wP 密碼: wd9e解壓後按照一下順序進行安裝 &
Time of Update: 2015-08-26
標籤:繼承 什麼是繼承?繼承的優點和缺點?繼承是指一個對象直接使用另一對象的屬性和方法。繼承需要符合的關係:is-a(比如狗是犬科動物,貓是貓科動物)如何尋找父類?把眾多子類的公用部分抽離出來,形成一個類,即父類子類繼承父類,子類具有父類的屬性和行為,以及自身特殊的屬性和行為。(即子類功能比較強大)繼承的優點:1.抽出重複的代碼2.建立類與類之間的關係缺點:耦合性高特點:OC中只允許單一繼承,因為多繼承會有“致命方塊”定義一個子類:在.h檔案中 Super關鍵
Time of Update: 2015-08-26
標籤:動態類型檢測 回應程式法 ———————————————————————————————————————————動態類型檢測代碼:#import <Foundation/Foundation.h>@interface Animal : NSObject-(void)run;-(void)abc;@end@implementation Animal-(void)run{
Time of Update: 2015-08-20
標籤: 摘要只要用到Objective-C,我們每天都會跟方法調用打交道。我們都知道Objective-C的方法決議是動態,但是在底層一個方法究竟是怎麼找到的,方法緩衝又是怎麼運作的卻鮮為人知。本文主要從源碼角度探究了Objective-C在runtime層的方法決議(Method resolving)過程和方法緩衝(Method cache)的實現。簡介本文作者來自美團酒店旅遊事業群iOS研發組。我們致力於創造價值、提升效率、追求卓越。歡迎大家加入我們(簡曆請發送到郵箱
Time of Update: 2015-08-20
標籤:本文目錄前言一、傳統的get方法和set方法二、使用點文法代替傳統的get方法和set方法三、點文法和self的陷阱四、一點小建議說明:這個Objective-C專題,是學習iOS開發的前奏,也為了讓有物件導向語言開發經驗的程式員,能夠快速上手Objective-C。如果你還沒有編程經驗,或者對Objective-C、iOS開發不感興趣,請忽略。學習本專題之前,建議先學習C語言專題。回到頂部前言在Java中,我們可以通過"對象名.成員變數名"來訪問對象的公用成員變數,這個就稱為"點文法"。
Time of Update: 2015-08-20
標籤:1. [ ] 表示發送訊息 [receiver message] 會被編譯器轉化為:objc_msgSend(receiver, selector)如果含有參數objc_msgSend(receiver, selector, arg1, arg2, ...) 2. Runtime 術語 執行個體對象有個isa的屬性,指向Class, 而Class裡也有個isa的屬性, 指向meteClass. 這裡就有個點, 在Objective-C中任何的類定義都是對象,
Time of Update: 2015-08-20
標籤:本文目錄一、Java中的this只能用在動態方法中,不能用在靜態方法中二、OC中的self既可以用在動態方法中,也可以用在靜態方法中說明:這個Objective-C專題,是學習iOS開發的前奏,也為了讓有物件導向語言開發經驗的程式員,能夠快速上手Objective-C。如果你還沒有編程經驗,或者對Objective-C、iOS開發不感興趣,請忽略。學習本專題之前,建議先學習C語言專題。OC中有一個self關鍵字,用法跟Java中的this類似,都是代表著當前方法的調用者。但self和thi
Time of Update: 2015-08-20
標籤:本文目錄知識回顧一、自訂構造方法二、description方法說明:這個Objective-C專題,是學習iOS開發的前奏,也為了讓有物件導向語言開發經驗的程式員,能夠快速上手Objective-C。如果你還沒有編程經驗,或者對Objective-C、iOS開發不感興趣,請忽略。學習本專題之前,建議先學習C語言專題。回到頂部知識回顧在第5講中已經介紹了如何定義類和建立並初始化對象,比如有Student這個類1.Student.h1 #import
Time of Update: 2015-08-20
標籤:本文目錄一、文法簡介二、用Xcode建立第一個OC的類三、第一個類的代碼解析四、新增成員變數五、添加方法六、跟Java的比較七、建立對象八、訪問公用成員變數和方法說明:這個Objective-C專題,是學習iOS開發的前奏,也為了讓有物件導向語言開發經驗的程式員,能夠快速上手Objective-C。如果你還沒有編程經驗,或者對Objective-C、iOS開發不感興趣,請忽略。學習本專題之前,建議先學習C語言專題。OC是一門物件導向的語言,因此它也有類、對象、靜態\動態方法、成員變數的概念
Time of Update: 2015-08-19
標籤:關聯 關聯是指把兩個對象相互關聯起來,使得其中的一個對象作為另外一個對象的一部分。 關聯特性只有在Mac OS X V10.6以及以後的版本上才是可用的。在類的定義之外為類增加額外的儲存空間 使用關聯,我們可以不用修改類的定義而為其對象增加儲存空間。這在我們無法訪問到類的源碼的時候或者是考慮到二進位相容性的時候是非常有用。
Time of Update: 2015-08-20
標籤:NSString表示oc當中的字串類%@是oc當中對象的格式符printf不能列印oc當中的對象通過stringWithFormat:這個類方法,列印格式化的字串例 int a = 10; NSString * str = [NSString stringWithFormat:@"身高是%i",a]; NSLog(@"%@",str);通過NSSting當中的求長度的方法,計算字串的長度 oc當中的求長度的方法,
Time of Update: 2015-08-18
標籤:OC中字串的反轉方式可以用兩種方式來處理:第一種:從頭到尾取出字串的每一個字元,然後將其從尾到頭添加到可變的字串中,最後輸出即可。第二種:將OC內部的字串轉換為C語言中的字串,然後動態分配一個數組,然後將字串內容拷貝到數組中,進行首尾交換操作。共進行數組長度/2次操作。 方式一:OC版本 1 -(NSMutableString*)Reverse 2 { 3 NSUInteger length = [self length]; 4 NSMutableArray
Time of Update: 2015-08-17
標籤:特殊類型的封裝類:數組、結構體(OC內部的、自訂的)、指標 1 // 2 // main.m 3 // 05-NSValue 4 // 5 // Created by ma c on 15/8/17. 6 // Copyright (c) 2015年 bjsxt. All rights reserved. 7 // 8 9 #import <Foundation/Foundation.h>10 typedef struct11 {12 char *name;1
Time of Update: 2015-08-15
標籤:接前天的部落格,今天繼續講解後27題。測試題地址:http://www.eosgarden.com/en/articles/objc-quizz/take/31.Which of the following can be inherited?以下哪些可被繼承?答案:protocols,classes。協議和類說明:要注意categories無法被繼承。 32.How do you throw an exception?如何拋出異常?答案:@throw
Time of Update: 2015-08-15
標籤:測試地址:http://www.eosgarden.com/en/articles/objc-quizz/take/這是前幾天好友共用的Obj-C測試題,共57題。自以為精通OC了的本人去做了下測試題,結果受到了較為嚴重的精神打擊,考點非常細,有些甚至非常底層。準備分2次講解這些題目,下面逐個講解這些考題。其中有一些題目筆者自身也有一些疑問,歡迎探討。1.What is "Nil" in Objective-C? “Nil”在OC中是什嗎?答案:(void
Time of Update: 2015-08-15
標籤:三種檔案匯入的方式比較: 類的前項聲明@class、import、include: 1、採用@class
Time of Update: 2015-08-12
標籤:分類(Category 、Extension)(一)分類的劃分 (2) 1、(命名的類別)類別Category:只能添加新的方法,不能添加新變數。 2、(未命名的類別)類的擴充Extension://擴充一般直接寫在類的實現檔案中
Time of Update: 2015-08-11
標籤:objective-c 協議 ios開發 ios 13.1 協議正式協議:包含了方法和屬性的有名稱列表。注意:採用協議後,類就要實現該協議的所有方法。通常情況下,一個協議只有少數幾個需要實現的方法.在協議中,不會引用新的執行個體變數。13.11 聲明協議NSCopying 協議@protocol NSCopying- (id) copyWithZone:
Time of Update: 2015-08-10
標籤:Delegate在iOS開發中隨處可見,Delegate是一種功能強大的軟體架構設計理念,它的功能是程式中一個對象代表另一個對象,或者一個對象與另外一個對象協同工作(如小明喜歡一個女孩如花,卻苦於沒有如花的連絡方式,於是叫好兄弟小東去拿如花連絡方式,小東同學一天后返回結果給小明,....)。小明能否成功追到如花,小東在其中又做了些啥事,下面一步步分解。 1.建立一個Delegate(通過protocol)#import