標籤:
首先自我介紹吧,南昌大學軟體工程專業2015界畢業生,從大學牲變到程式猿,由於在學校裡只學了Java語言和B/S架構開發,於是乎出來實習和工作也是搞Java網頁開發。
但是作為一名果粉,現階段想轉IOS開發,最近也開始自學了,寫點東西記下來吧
2015/9/17
Day 1
安裝虛擬機器並安裝Mac OS X系統(苦逼的我還在用聯想Y-470)
開始看C語言基礎,由於大學裡學過一點,還是比較輕鬆的
2015/9/19
Day 2
由於Java中沒有指標,開始看指標的相關知識
2015/9/20
Day 3
1)指標作為參數,在使用的時候要傳給它相應的地址值
2)數組名表示數組的首地址,數組作為參數時,系統會轉化成指標,所以盡量用指標作為參數
3)數組接收字串:可變字串
指標接收字串:不可變字串(該字串在記憶體的常量區) //感覺類似Java中的String
4)指向函數的指標 用於在把函數當參數傳遞的情況 //類似Java的回呼函數
2015/9/21
Day 4
開始學習OC(Objective-C)
OC中類的寫法
@interface <#class name#> : <#superclass#>
//屬性以及反覆聲明(+表示類方法,-表示對象方法)
@end
@implementation class name
//方法的實現
- (傳回值類型)方法名:(參數1類型) 參數1 方法名/*最好寫參數說明*/:(參數2類型) 參數2 .....{
}
//提倡將方法名寫的像句子一樣好讓人理解
//個人剛開感覺方法名 很長,不適應,後來用多了感覺非常棒!
@end
OC中需要調用方法時直接寫一個[ ],然後左邊寫使用者,右邊寫方法名
OC中想要操作對象的屬性和方法,必須用指標
2015/9/22
Day 5
常見錯誤
1)只有聲明,沒有實現
2)缺少@end
3)成員變數不在{ }內
4)聲明中沒有初始化
最常見的異常資訊
unrecognized selector sent to instance
發送了一個無意義的訊息給執行個體/對象
例子:NSString
定義以及初始化
NSString *str = @"huihui";
方法
[NSString stringWithFormat:...];//類方法
[str length]; //對象方法
封裝思想,跟Java相同,屬性變數一般無妨讓外界直接使用,而是提供set,get方法來供別人使用
set方法名為 setXxx://xxx表示屬性名稱,跟Java相同前面有set並後面接駝峰式
get方法名為 xxx //xxx表屬性名稱,跟Java不同,OC中直接用屬性名稱做get方法名
self 關鍵字 相當於Java中的this
2015/9/23
Day 6
物件導向語言的三大特徵:封裝,繼承,多態。這對於我來講很簡單,當初Java的興趣就是源於物件導向的思想
前面說了封裝,再說OC裡的繼承
總父類NSObject
其中常用的基礎方法有 new,description(類似Java的toString方法)等等
OC為了迎合Java程式員,加入了點文法,哈哈^_^贊一個
對象.屬性(只能用於屬性)
實質是編譯器在後台調用set方法,get方法
對應Java中有自動產生set,get方法的方式,OC中當然也有,而且更棒,你在類檔案中不需要看見set,get方法(除非你重寫他幹特定的事)
這樣類檔案很精簡,不想Java的類檔案有一大坨都是set,get方法
@property 類型 變數名;
像上面那樣,簡單的加上@property
id 萬能指標 相當於NSObject *
構造方法的寫法 以init開頭,方法中調用 super init方法
(instancetype) initWith... {
if (self = [super init]){
...
}
return self;
}
alloc方法是建立一個沒有初始化的對象
init初始化對象
一般不用new ,先alloc再 init
2015/9/24
Day 7
自訂構造方法
1)一般在開發中,需要給類一個對象方法和類方法,方便使用
對象方法 init開頭
類方法 方法名開頭與類名一致(首字母小寫)
構造方法中盡量用self,提高擴充性
2)如果A類中匯入了B類,而B類中也匯入了A類
這樣會造成循環參考
解決方案:不用#import引用,用@class匯入類 (.h檔案,也就是聲明檔案中)
但@class僅僅是告訴編譯器某某東西是個類,如果需要匯入其中的成員和方法時,還是要用#import匯入
一個java程式員自學IOS開發之路(一)