(GeekBand) OC第二周學(xué)習(xí)筆記

內(nèi)存管理:

1.管理內(nèi)存的分配和釋放
1)分配:alloc new copy分配內(nèi)存
2)釋放:release

2.什么時候下會釋放內(nèi)存?
當(dāng)計數(shù)器值為0時會自動釋放內(nèi)存.

3.怎么證明對象即將被釋放?
重寫dealloc方法,要求:必須調(diào)用回父類的dealloc方法

4.內(nèi)存管理的原則:
誰創(chuàng)建,誰釋放.
誰retain 誰release

5.set的方法的內(nèi)存管理方式

- (void)setCat:(Cat *)cat
{
   if(_cat != cat)
   {
       [_cat release];
       _cat = [cat retain];
   }
}

@property的標(biāo)準格式和參數(shù)

1)格式:
@property (參數(shù)1,參數(shù)2)成員變量類型 成員變量名稱(去掉下劃線);

2)參數(shù):
nonatomic:非原子性,線程不加鎖,性能高,安全性低
atomic:原子性,線程加鎖,性能低,安全性高.

retain:用于對象類型,生成set方法的內(nèi)存管理代碼.
assign:用于基本數(shù)據(jù)類型,不生成內(nèi)存管理代碼,直接進行賦值操作.

readwrite:可讀可寫.
readonly:只讀

setter:更改set方法的名字,注意:setter:
getter:更改get方法的名字.

@class

簡單的聲明一個類
跟#import的區(qū)別:
import引入文件里面所有的內(nèi)容,包括成員變量和方法.
@class僅僅告訴編譯器,它修飾的是一個類而已.
建議.h文件當(dāng)中使用@class

1艘儒、對象的自動釋放池的作用
autorelease對象方法
@autoreleasepool關(guān)鍵字的使用

  Person *p = [Person new];
  @autoreleasepool{
    [p autorelease];
  }

+ (instancetype)person{
    return [[[ self alloc] init] autorelease];
}

  Person *p = [Person person];
  //封裝一個initWithXxx方法, 在其中使用"對象自動釋放池"
  1. ARC介紹
  • ARC概念介紹
  • ARC的判斷原則/強弱指針介紹
  • 循環(huán)strong問題
  • MRC代碼轉(zhuǎn)ARC代碼
    ARC項目如何兼容MRC的代碼
    項目---> 編譯選項 ---->雙擊類文件----> -fno-objc-arc
    MRC項目轉(zhuǎn)換為ARC
    MRC項目轉(zhuǎn)換為ARC
  1. @autoreleasepool的嵌套使用(棧方式來存儲)
  • instancetype只能用作返回值, 不能使用instancetype來聲明變量 * id 和 instancetype 的區(qū)別
    /*
    id -> NSObject * id obj; id類型是可以用來聲明變量的
    instancetype -> 在哪個類中, 表示的就是哪個類型的指針 XXXX * instancetype 只能用作方法的返回值, 不能通過instancetype來聲明變量 */
  • 自動釋放池是以棧結(jié)構(gòu)來存儲的

3浮梢、 Category分類

  • 分類的作用:
    1> 將一個類中的不同方法分到多個不同的文件中存儲, 便于對類進行模塊化設(shè)計僧凤、團隊合作
    開發(fā)深浮。
    2> 可以在不修改原來類的基礎(chǔ)上, 為這個類擴充一些方法.
  • 分類中只能增加"方法", 不能增加成員變量等。
    //原類
@interface Person:NSObject {
int _age; }
@end
@implementation Person {
int _weight; //私有的成員變量 }
    -(void)setAge:(int)age{
} -(int)age{
}
}
@end //分類

@interface Person (base)
@property int age; //相當(dāng)于給_age進行g(shù)et和set方法的聲明 @end

  • 分類可以訪問原來類中的成員變量

  • 主類與分類中方法的調(diào)用優(yōu)先級問題:
    1> 當(dāng)分類與主類中都有同一個方法的時候, 優(yōu)先調(diào)用分類中的方法译仗。
    2> 當(dāng)多個分類中都有同樣的一個方法的時候, 優(yōu)先調(diào)用最后一個參與編譯的分類中的方法抬虽。

  • 非正式協(xié)議
    給Foundation中 NSObject類或者它的子類建立的分類, NSObject + eat
    應(yīng)用:
    NSString + countNumForString

  • 類擴展(匿名分類)
    0> 類擴展是寫在.m文件中的, 為當(dāng)前類擴展一些私有的成員.
    1> 作用: 為某個類擴充一些私有的成員變量和方法.
    2> "類擴展"對比"分類", 就少了一個分類名稱, 因此也有人稱它為"匿名分類".

4官觅、 block

  • block是一種數(shù)據(jù)類型, 可以使用這種數(shù)據(jù)類型定義變量, 并賦值纵菌。
  • block數(shù)據(jù)類型在使用前需要先定義該數(shù)據(jù)類型, 然后再使用(就像使用Person類一樣, 先
    定義一個Person類, 然后再通過Person類聲明一個Person類型變量)。 * block這種數(shù)據(jù)類型用來保存一個方法休涤、函數(shù)咱圆、一段代碼
  • 必須掌握: block的定義語法笛辟、使用場景
    無參無返回值
    void (^變量名)();
    變量名 = ^(){ }; 或者變量名=^{ };
    有參無返回值
    有參無返回值
    有參有返回值
  • 使用inlineBlock輔助編寫block代碼
    //int (^block)(int,int) = ^(int n, int m){}; int (^block)(int,int) = ^(int n, int m){};

滿地打滾賣萌求贊,如果本文幫助到你序苏,輕點下方的紅心手幢,給作者君增加更新的動力。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末忱详,一起剝皮案震驚了整個濱河市围来,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌匈睁,老刑警劉巖监透,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異航唆,居然都是意外死亡胀蛮,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進店門糯钙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來粪狼,“玉大人,你說我怎么就攤上這事任岸≡匍” “怎么了?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵享潜,是天一觀的道長不跟。 經(jīng)常有香客問我,道長米碰,這世上最難降的妖魔是什么窝革? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮吕座,結(jié)果婚禮上虐译,老公的妹妹穿的比我還像新娘。我一直安慰自己吴趴,他們只是感情好漆诽,可當(dāng)我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著锣枝,像睡著了一般厢拭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上撇叁,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天供鸠,我揣著相機與錄音,去河邊找鬼陨闹。 笑死楞捂,一個胖子當(dāng)著我的面吹牛薄坏,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播寨闹,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼胶坠,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了繁堡?” 一聲冷哼從身側(cè)響起沈善,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎椭蹄,沒想到半個月后矮瘟,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡塑娇,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年澈侠,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片埋酬。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡哨啃,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出写妥,到底是詐尸還是另有隱情拳球,我是刑警寧澤,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布珍特,位于F島的核電站祝峻,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏扎筒。R本人自食惡果不足惜莱找,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望嗜桌。 院中可真熱鬧奥溺,春花似錦、人聲如沸骨宠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽层亿。三九已至桦卒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間匿又,已是汗流浹背方灾。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留琳省,地道東北人迎吵。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓躲撰,卻偏偏與公主長得像针贬,于是被迫代替她去往敵國和親击费。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,933評論 2 355

推薦閱讀更多精彩內(nèi)容