Object C學習大綱

2021-08-20 16:13:03 字數 2680 閱讀 8870

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 ...