iOS開發(fā)常見坑

關(guān)于A vc pop回 B vc 之后, A的dealloc不執(zhí)行的幾種可能原因:

感謝http://www.jvaeyhcd.cc/2016/04/06/iOS中造成dealloc不調(diào)用的原因/

  1. 聲明的代理不是assign類型(順便提一句, .h文件中block的聲明是copy修飾, 雖然這和循環(huán)引用無關(guān));
    說到這順便說一句
    weak: 當(dāng)弱變量引用的對象被別的變量釋放包竹,那么弱變量會被自動設(shè)置為nil酵使,這樣可以有效地防止崩潰, 但是assign并不會將其置空, 所以代理用assign修飾, 防止在dealloc中要使用

  2. block閉包回調(diào)中, 所以用到下劃線或者self的地方, 統(tǒng)統(tǒng)要

     __block Viewcontroller *weakSelf = self;   
    

然后用weakself修飾, 不論系統(tǒng)有沒有出現(xiàn)黃警都必須如此, 哪怕出現(xiàn)一個都會使retain count不能減為1, 導(dǎo)致dealloc不執(zhí)行,

這里使用MJRefresh的同學(xué)特別要注意, 他家的閉包回調(diào), 必須使用修飾符修飾self

不過, 系統(tǒng)動畫, GCD等的系統(tǒng)方法的閉包內(nèi)則用self即可;

3 . A中存在timer的情況, 則在離開的時候必須使timer失效;

4 . B在A中是以屬性懶加載的形式, 跳轉(zhuǎn)過來, 則被持續(xù)持有, 不會進入dealloc

在含有UISearchController的vc, 返回退出時控制臺發(fā)出這樣的警告:

Attempting to load the view of a view controller while it is deallocating is not allowed and may result in undefined behavior (<UISearchController:balabala

在創(chuàng)建UISearchController的時候加一句這個即可:

[_searchController loadViewIfNeeded];

重寫初始化

建議重寫initWithFrame, 這樣外部調(diào)用init或initWithFrame都是可以執(zhí)行的

關(guān)于xib

在vc不能用alloc init創(chuàng)建, 只能使用

[[[NSBundle mainBundle] loadNibNamed:@"xib文件名" owner:nil options:nil] firstObject];

封裝時可把此句寫在該view的類方法中, 供外部調(diào)用

xib初始化走的是以下這句

- (instancetype)initWithCoder:(NSCoder *)aDecoder

所以可在此方法內(nèi)往nib對應(yīng)的view添加子視圖.

但是, 當(dāng)xib上的子控件要添加子視圖時, 不可通過重寫以上方法來創(chuàng)建, 此時處于xib上的子控件處于未喚醒狀態(tài), 應(yīng)該通過重寫來創(chuàng)建

- (void)awakeFromNib

KVC

  1. setValueForKeyPath和setValueForKey
    前者包含了后者的功能, 前者在keyPath使用內(nèi)部點語法(字符串形式)可以層層往里訪問內(nèi)部屬性, 注意, key值必須在屬性值中可以找到

如A和B兩個model類, Bmodel中有屬性c, A中有B的屬性b
A屬性a, [a setValue:@"hhh" forKeyPath:b.c];

2.使用前者還可修改類的私有變量, 加入在A類中聲明一個變量_h, 則可以在類外, 通過A的實例變量a, [a setValue:"aaa" forKeyPath:@"_h"];來修改, keyPath字符串直接寫"h"也是可以的

3.假設(shè)A類實例變量a, A類中有一個屬性name
[a addObserver:self forKeyPath:@"name" options:NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld context];

假設(shè)先給name賦值@"a", 再賦值@"b", 則在- (void)obserValueForKeyPath:(NSString *)keyPath ......的方法, 打印keyPath, object和change, 會打印kind=1; new=@"b", old=@"a"

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末掀亩,一起剝皮案震驚了整個濱河市区赵,隨后出現(xiàn)的幾起案子映之,更是在濱河造成了極大的恐慌便锨,老刑警劉巖歪架,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件矫夷,死亡現(xiàn)場離奇詭異葛闷,居然都是意外死亡,警方通過查閱死者的電腦和手機双藕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進店門孵运,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蔓彩,你說我怎么就攤上這事治笨〔蹈牛” “怎么了?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵旷赖,是天一觀的道長顺又。 經(jīng)常有香客問我,道長等孵,這世上最難降的妖魔是什么稚照? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮俯萌,結(jié)果婚禮上果录,老公的妹妹穿的比我還像新娘。我一直安慰自己咐熙,他們只是感情好弱恒,可當(dāng)我...
    茶點故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著棋恼,像睡著了一般返弹。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上爪飘,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天义起,我揣著相機與錄音,去河邊找鬼师崎。 笑死默终,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的犁罩。 我是一名探鬼主播穷蛹,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼昼汗!你這毒婦竟也來了肴熏?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤顷窒,失蹤者是張志新(化名)和其女友劉穎蛙吏,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鞋吉,經(jīng)...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡鸦做,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了谓着。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片泼诱。...
    茶點故事閱讀 38,100評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖赊锚,靈堂內(nèi)的尸體忽然破棺而出治筒,到底是詐尸還是另有隱情屉栓,我是刑警寧澤,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布耸袜,位于F島的核電站友多,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏堤框。R本人自食惡果不足惜域滥,卻給世界環(huán)境...
    茶點故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蜈抓。 院中可真熱鬧启绰,春花似錦、人聲如沸沟使。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽格带。三九已至,卻和暖如春刹枉,著一層夾襖步出監(jiān)牢的瞬間叽唱,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工微宝, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留棺亭,地道東北人。 一個月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓蟋软,卻偏偏與公主長得像镶摘,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子岳守,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,834評論 2 345

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

  • 來自網(wǎng)絡(luò) 序言 目前形勢凄敢,參加到iOS隊伍的人是越來越多,甚至已經(jīng)到供過于求了湿痢。今年涝缝,找過工作人可能會更深刻地體會...
    用心在飛閱讀 823評論 5 4
  • 文/Jack_lin(簡書作者)原文鏈接:http://www.reibang.com/p/5d2163640e2...
    筆筆請求閱讀 539評論 0 0
  • 說明:面試題來源是微博@我就叫Sunny怎么了的這篇博文:《招聘一個靠譜的 iOS》,其中共55題譬重,除第一題為糾錯...
    騎行怪狀閱讀 1,449評論 0 9
  • 序言 目前形勢臀规,參加到iOS隊伍的人是越來越多滩援,甚至已經(jīng)到供過于求了。今年塔嬉,找過工作人可能會更深刻地體會到今年的就...
    Jack_lin閱讀 78,328評論 110 1,945
  • 對與錯的界限 再也不必明了 即是你同我 不過一生的告別了
    家里有只貓閱讀 160評論 0 0