objective-c誕生於 20 世紀 80 年代
由brad cox 發明
c語言的基礎上,增加了一層最小的物件導向語法
完全相容c語言
可以在oc**中混入c語言**,甚至是c++**
mac os環境 xcode
建立乙個xcode專案
選擇mac os下的command line tool
輸入專案名稱和選擇語言(object-c)
選擇**存放位置
過程1、.m檔案
2、編譯成.o檔案
3、鏈結a.out 可執行檔案
專案介紹
foundation
autoreleasepool
nslog
#import的作用
檔案型別
.h檔案
.m檔案
.mm檔案
基本上所有關鍵字都是以@開頭
其實類也是乙個物件,是class型別的物件,簡稱「類物件」
class型別的定義
類名就代表著類物件,每個類只有乙個類物件
+load
在程式啟動的時候會載入所有的類和分類,並呼叫所有類和分類的+load方法
先載入父類,再載入子類;也就是先呼叫父類的+load,再呼叫子類的+load
先載入元原始類,再載入分類
不管程式執行過程有沒有用到這個類,都會呼叫+load載入
+initialize
在第一次使用某個類時(比如建立物件等),就會呼叫一次+initialize方法
乙個類只會呼叫一次+initialize方法,先呼叫父類的,再呼叫子類的
獲取類物件的2種方式
class c = [person class]; // 類方法
person *p = [person new]; class c2 = [p class]; // 物件方法
-description方法
+ description方法
類方法以加號+開頭
只能用類名呼叫,物件不能呼叫
類方法中不能訪問例項變數(成員變數)
物件方法
以減號-開頭
只能讓物件呼叫,沒有物件,這個方法根本不可能被執行
物件方法能訪問例項變數(成員變數)
do while
while
forif
switch
當占用的記憶體較多時,系統會發出記憶體警告,這時**一些不需要再使用的記憶體空間
任何繼承了nsobject的物件
對其他基本資料型別無效
每個oc物件都有自己的引用計數器,是乙個整數,表示「物件被引用的次數
每個oc物件內部專門有4個位元組的儲存空間來儲存引用計數器
引用計數器的作用
當使用alloc、new或者copy建立乙個新物件時,新物件的引用計數器預設就是1
當乙個物件的引用計數器值為0時,物件占用的記憶體就會被系統**
引用計數器的操作
給物件傳送一條retain訊息,可以使引用計數器值+1(retain方法返回物件本身)
給物件傳送一條release訊息,可以使引用計數器值-1
可以給物件傳送retaincount訊息獲得當前的引用計數器值
當乙個物件的引用計數器值為0時,那麼它將被銷毀,其占用的記憶體被系統**
當乙個物件被銷毀時,系統會自動向物件傳送一條dealloc訊息
一般會重寫dealloc方法,在這裡釋放相關資源,dealloc就像物件的遺言
一旦重寫了dealloc方法,就必須呼叫[super dealloc],並且放在最後面呼叫
不要直接呼叫dealloc方法
一旦物件被**了,它占用的記憶體就不再可用,堅持使用會導致程式崩潰(野指標錯誤)
誰建立,誰release
誰retain,誰release
基本簡介
arc是自ios 5之後增加的新特性
完全消除了手動管理記憶體的煩瑣
編譯器會自動在適當的地方插入適當的retain、release、autorelease語句
基本原理
只要還有乙個強指標變數指向物件,物件就會保持在記憶體中
使用注意
不能呼叫release、retain、autorelease、retaincount
可以重寫dealloc,但是不能呼叫[super dealloc]
@property : 想長期擁有某個物件,應該用strong,其他物件用weak
其他基本資料型別依然用assign
兩端互相引用時,一端用strong、一端用weak
atomic :效能低(預設)
nonatomic :效能高
nsrange
nspoint/cgpoint
nssize/cgsize
nsrect/cgrect
不可變陣列nsarray
可變陣列nsmutablearray
不可變字串nsstring
可變字串nsmutablestring
object c學習記錄
由於如今ios開發比較火熱,作為程式設計師,多懂幾門技術也是必備技能。因此打算這段時間學一學ios開發。乙個ios開發的朋友推薦了兩本書。object c 基礎教程 和 iphone 5 開發基礎教程 於是這兩天開始看object c 總結下obj c 1 物件導向,使用物件前,用alloc分配,然...
Object C學習 復合
關於復合這一塊的學習,這兩天一直在做關於這一方面的練習,感覺上不怎麼難,就是有時候感覺有點繞,因為剛剛開始學習oc,所以寫的程式沒有什麼實際功能,只是單純的練習。下面是我自己做的乙個關於復合的小練習,目的是對乙個組合進行基本資訊的介紹 這是建立的所有類,其中tvxq.h中有其他類的標頭檔案,體現復合...
Hibernate學習大綱
1.jdbc連線資料庫和jdbc api 2.jdbc事務,jdbc運算元據crud 3.hibernate基本流程 建立configuration 建立sessionfactory 建立session 開啟事務 業務操作 關閉事務 結束事務 關閉session 關閉sessionfacctory ...