引用類型:
類
指針
塊
值類型:
基礎(chǔ)數(shù)值類型
結(jié)構(gòu)
枚舉
類型裝飾:
協(xié)議
類別
擴(kuò)展
類怎么寫
先定義一個接口文件 @interface 指一個類,對外可見的部分你可以訪問它
類內(nèi)定義一個方法,類內(nèi)的函數(shù)
屬性表達(dá)的是一個對象的狀態(tài)
方法表達(dá)的是對象的行為,就是你能做什么
實例方法,前面用一個減號-
類.h文件只是個接口,描述對外調(diào)用的一個樣子,但是我們還要定義它的實現(xiàn),它的實現(xiàn)用類.m文件
引用第三方基礎(chǔ)類庫和自己寫的頭文件.h, 用#import,然后寫@implementation,接著寫實現(xiàn)的方法,最后寫@end
self是當(dāng)前對象,當(dāng)前實例
對象必須以指針方式存在
對象也叫對象實例
創(chuàng)建對象要手動做內(nèi)存分配,接著做初始化init
訪問屬性
發(fā)送消息
方法只能在類里面寫,不能在結(jié)構(gòu)里面寫
類型與實例:類與對象, 結(jié)構(gòu)與值
值沒法發(fā)消息, 對象可以發(fā)消息
引用類型,位于棧上的指針,位于堆上的實體對象
值類型,實例直接位于棧上
ARC,自動引用計數(shù)
棧,存儲值類型
函數(shù)執(zhí)行時,自動分配一個棧
函數(shù)執(zhí)行后棧立即銷毀
函數(shù)通過拷貝在棧與棧之間傳遞對象或值
棧有限額,超出就是棧溢出,死循環(huán)或超大遞歸就會產(chǎn)生這個問題
堆存儲引用類型對象
堆的分配由程序員手動請求,存儲的是引用類型的對象
函數(shù)之間通過拷貝引用(指針)傳遞
不同的函數(shù),不同的棧