iOS開(kāi)發(fā)冷知識(shí)

  • tabBar

UITabBarControllersuper init 里面會(huì)調(diào) self.view
所以繼承時(shí) 只锻,viewDidLoad 會(huì)比我們自己的 init 先調(diào)
平時(shí)寫(xiě) viewDidLoad 直接搞到 init

  • 類(lèi)型

在Swift里面AnyObject?必須是類(lèi)晰洒,如果需要傳入protocol類(lèi)型的參數(shù)重荠,可以換成Any?

  • 相機(jī)

AVCaptureSession 自定義相機(jī)界面

  • 直播的第三方庫(kù)

https://github.com/ltebean/Live

答:當(dāng) block 本身不被 self 持有阻逮,而被別的對(duì)象持有钻哩,同時(shí)不產(chǎn)生循環(huán)引用的時(shí)候,就不需要使用 weak self 了碟渺。最常見(jiàn)的代碼就是 UIView 的動(dòng)畫(huà)代碼鲜锚,我們?cè)谑褂?UIView 的 animateWithDuration:animations方法 做動(dòng)畫(huà)的時(shí)候,并不需要使用 weak self苫拍,因?yàn)橐贸钟嘘P(guān)系是:

UIView 的某個(gè)負(fù)責(zé)動(dòng)畫(huà)的對(duì)象持有了 block
block 持有了 self
因?yàn)?self 并不持有 block芜繁,所以就沒(méi)有循環(huán)引用產(chǎn)生,因?yàn)榫筒恍枰褂?weak self 了怯疤。

  [UIView animateWithDuration:0.2 animations:^{
      self.alpha = 1;
  }];

當(dāng)動(dòng)畫(huà)結(jié)束時(shí)浆洗,UIView 會(huì)結(jié)束持有這個(gè) block催束,如果沒(méi)有別的對(duì)象持有 block 的話(huà)集峦,block 對(duì)象就會(huì)釋放掉,從而 block 會(huì)釋放掉對(duì)于 self 的持有抠刺。整個(gè)內(nèi)存引用關(guān)系被解除塔淤。

  • 當(dāng)一個(gè)View的bounds原點(diǎn)不為0的時(shí)候會(huì)出現(xiàn)什么情況?

  1. 它可以修改自己坐標(biāo)系的原點(diǎn)位置速妖,影響“子view”的顯示位置高蜂。
  1. bounds,它可以通過(guò)改變寬高罕容,改變自身的frame备恤,進(jìn)而影響到再父視圖的顯示位置和大小。
    詳細(xì)解釋
  • 什么時(shí)候用NS_OPTIONS锦秒,NS_ENUM?

NS_ENUM定義通用枚舉露泊,NS_OPTIONS定義位移枚舉
位移枚舉即是在你需要的地方可以同時(shí)存在多個(gè)枚舉值如這樣:

  UISwipeGestureRecognizer *swipeGR = [[UISwipeGestureRecognizer alloc] init];
  swipeGR.direction = UISwipeGestureRecognizerDirectionDown | UISwipeGestureRecognizerDirectionLeft | UISwipeGestureRecognizerDirectionRight;
  //這里幾個(gè)枚舉項(xiàng)同時(shí)存在表示它的方向同時(shí)包含1.向下2.向左3.向右

而NS_ENUM定義的枚舉不能幾個(gè)枚舉項(xiàng)同時(shí)存在,只能選擇其中一項(xiàng)旅择,像這樣:

  NSMutableParagraphStyle *paragraph = [[NSMutableParagraphStyle alloc] init];
  paragraph.baseWritingDirection = NSWritingDirectionNatural;

詳細(xì)解釋

  • 漸進(jìn)式圖片加載

當(dāng)圖片從網(wǎng)絡(luò)中獲取的時(shí)候惭笑,可能由于過(guò)大,數(shù)據(jù)緩慢,這時(shí)候就需要漸進(jìn)式加載圖片來(lái)顯示沉噩。主要通過(guò)CFData對(duì)象來(lái)實(shí)現(xiàn):

創(chuàng)建一個(gè)CFData去添加image data.

創(chuàng)建一個(gè)漸進(jìn)式圖片資源捺宗,通過(guò) CGImageSourceCreateIncremental

獲取圖片數(shù)據(jù)到CFData中

調(diào)用CGImageSourceUpdateData函數(shù),傳遞CFData和一個(gè)bool值川蒙,去描述這個(gè)數(shù)據(jù)是否包含全部圖片數(shù)據(jù)或者只是部分?jǐn)?shù)據(jù)蚜厉。無(wú)論什么情況,這個(gè)data包含已經(jīng)積累的全部圖片文件畜眨。

如果已經(jīng)有足夠的圖片數(shù)據(jù)弯囊,可以通過(guò)函數(shù)繪制CGImageSourceCreateImageAtIndex部分圖片,然后記得要Release掉它胶果。

檢查是否已經(jīng)有全部的圖片數(shù)據(jù)通過(guò)使用CGImageSourceGetStatusAtIndex函數(shù)匾嘱。如果圖片是完整的,函數(shù)返回值為kCGImageStatusComplete早抠。否則繼續(xù)3霎烙,4步驟,直到獲得全部數(shù)據(jù)蕊连。

Release掉漸進(jìn)式增長(zhǎng)的image source悬垃。

  • __weak 和 __block 區(qū)別

__weak 本身是可以避免循環(huán)引用的問(wèn)題的,但是其會(huì)導(dǎo)致外部對(duì)象釋放了之后甘苍,block 內(nèi)部也訪問(wèn)不到這個(gè)對(duì)象的問(wèn)題尝蠕,我們可以通過(guò)在 block 內(nèi)部聲明一個(gè) __strong 的變量來(lái)指向 weakObj,使外部對(duì)象既能在 block 內(nèi)部保持住载庭,又能避免循環(huán)引用的問(wèn)題看彼。

__block 本身無(wú)法避免循環(huán)引用的問(wèn)題,但是我們可以通過(guò)在 block 內(nèi)部手動(dòng)把 blockObj 賦值為 nil 的方式來(lái)避免循環(huán)引用的問(wèn)題囚聚。另外一點(diǎn)就是 __block 修飾的變量在 block 內(nèi)外都是唯一的靖榕,要注意這個(gè)特性可能帶來(lái)的隱患。
詳細(xì)解釋

  • swift工程編譯越來(lái)越慢

swift工程編譯越來(lái)越慢顽铸,原來(lái)...
Build Time Analyzer for Swift

  • OC禪道

https://www.gitbook.com/book/yourtion/objc-zen-book-cn
優(yōu)化UITableViewCell高度計(jì)算的那些事

NSDecimalNumber

https://juejin.im/post/5949edd68d6d8109de26c6bb?utm_source=gold_browser_extension

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末茁计,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子谓松,更是在濱河造成了極大的恐慌星压,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,084評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鬼譬,死亡現(xiàn)場(chǎng)離奇詭異娜膘,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)拧簸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)劲绪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事贾富∏妇欤” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,450評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵颤枪,是天一觀的道長(zhǎng)汗捡。 經(jīng)常有香客問(wèn)我,道長(zhǎng)畏纲,這世上最難降的妖魔是什么扇住? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,322評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮盗胀,結(jié)果婚禮上艘蹋,老公的妹妹穿的比我還像新娘。我一直安慰自己票灰,他們只是感情好女阀,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,370評(píng)論 6 390
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著屑迂,像睡著了一般浸策。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上惹盼,一...
    開(kāi)封第一講書(shū)人閱讀 51,274評(píng)論 1 300
  • 那天庸汗,我揣著相機(jī)與錄音,去河邊找鬼手报。 笑死蚯舱,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的昧诱。 我是一名探鬼主播晓淀,決...
    沈念sama閱讀 40,126評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼盏档!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起燥爷,我...
    開(kāi)封第一講書(shū)人閱讀 38,980評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤蜈亩,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后前翎,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體稚配,經(jīng)...
    沈念sama閱讀 45,414評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,599評(píng)論 3 334
  • 正文 我和宋清朗相戀三年港华,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了道川。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,773評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖冒萄,靈堂內(nèi)的尸體忽然破棺而出臊岸,到底是詐尸還是另有隱情,我是刑警寧澤尊流,帶...
    沈念sama閱讀 35,470評(píng)論 5 344
  • 正文 年R本政府宣布帅戒,位于F島的核電站,受9級(jí)特大地震影響崖技,放射性物質(zhì)發(fā)生泄漏逻住。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,080評(píng)論 3 327
  • 文/蒙蒙 一迎献、第九天 我趴在偏房一處隱蔽的房頂上張望淳地。 院中可真熱鬧,春花似錦艺沼、人聲如沸吞歼。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,713評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)鸦采。三九已至,卻和暖如春咕幻,著一層夾襖步出監(jiān)牢的瞬間渔伯,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,852評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工肄程, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留锣吼,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,865評(píng)論 2 370
  • 正文 我出身青樓蓝厌,卻偏偏與公主長(zhǎng)得像玄叠,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子拓提,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,689評(píng)論 2 354

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