原创 RunLoop篇

main函數爲什麼是一直運行的? RunLoop整個流程圖 #import "MCObject.h" @implementation MCObject static NSThread *thread = nil; /

原创 Block篇

但是這種解決方案有一個弊端,如果長時間或永遠不調用block,這個環就一直存在 Block的用法,舉例,解析與底層原理

原创 Runtime篇

尋址40位就能準確尋址,非指針型isa設計是節省內存做法 局部性原理可以理解爲將調用頻率最高的方法放到緩存,避免到方法列表中遍歷查找,提高了效率 cache_t的結構,這應該是一個bucket_t的結構體數組,mask是總數量

原创 OC篇

此處的屬性非成員變量,只是聲明瞭setter和getter方法 多個分類有同一個實例方法時最後編譯的分類方法生效,分類合併會覆蓋 通過關聯對象可以給分類添加“成員變量” KVC打破了面對對象的編程思想 屬

原创 Flutter系列(五)《列表下拉刷新和上拉加載》

引言 有列表使用的地方就會並存會用到刷新加載功能,今天帶大家一起來學習一下。 1、下拉加載 我們通過使用RefreshIndicator組件來實現下拉刷新功能,首先我們來看下RefreshIndicator組件有哪些屬性 const

原创 Flutter系列(四)《安全區域的處理以及滾動事件監聽》

1. 安全區域處理 什麼是安全區域 iOS11引入了safe area的概念,safe area 定義了視圖的可視區域,保證在safe area 區域內的子view不會被遮擋。引出這個概念可能是因爲iPhone x 的頂部劉海和底部的h

原创 Flutter系列(一)《開發工具準備與開發環境搭建》

1. Flutter是什麼? Flutter可以用一份代碼同時生成iOS、Android兩個平臺下的高性能的、高保真的App 2. 爲什麼要用Flutter? 在Flutter的官網其實也已經給出了答案, Be highly produc

原创 Flutter系列(二)《如何使用Flutter插件》

本文章閱讀之前請確保已經按照Flutter中文網流程搭建好了環境,Flutter項目能運行起來。 Flutter相比於Weex的優勢就是開源社區的活躍度比較高,官方提供的插件以及開發社區的插件層出不窮。 插件傳送門 我們隨意搜索一個插件作爲

原创 2019年展望,記錄一下

轉眼間,春節假期已經結束,今天已是2019年的開工利是了,而筆者還沉浸在春節喜慶的氛圍中,O(∩_∩)O~~然而假期雖好可不要貪杯哦!於是在領完一波紅包後就開始着手製定新的一年學習和工作計劃了。 隨着RN、Weex、Futter的實踐以及

原创 iOS12.1語音不播報問題

近日,好多支付語音播報App都遇到一個問題原來好好的語音播報在iOS12.1上無效了,這可急哭了一羣小夥伴,原因是在NotificationService新特性裏面爸爸禁用了audio session,下面是官方聲明爲了解決這個問題,樓主也