在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

您好,歡迎來電子發燒友網! ,新用戶?[免費注冊]

您的位置:電子發燒友網>源碼下載>通訊/手機編程>

關于iOS開發的一些知識點

大小:0.2 MB 人氣: 2017-09-25 需要積分:1

1 @property

@property 是 readwrite,assign,atomic

在使用 @property 時, 編譯器默認會進行自動 synthesize,生成 getter 和 setter,同時把 ivar 和屬性綁定起來

使用 @dynamic,顯式表示不希望編譯器生成 getter 和 setter

protocol 中定義的屬性,編譯器不會自動 synthesize,需要手動寫

當重載父類中的屬性時,也必須手動寫 synthesize

2 Extension 與 Category 有如下幾點顯著的區別:

使用 Extension 必須有原有類的源碼

Extension 聲明的方法必須在類的主 @implementation 區間內實現,可以避免使用有名 Category 帶來的多個不必要的 implementation 段。

Extension 可以在類中添加新的屬性和實例變量,Category 不可以(注:在 Category 中實際上可以通過運行時添加新的屬性,下面會講到)

3 Bolck

在 ARC 中編譯器會自動對 block 進行 copy 操作,但是蘋果仍然建議使用 copy 來指明編譯器的行為

block 在捕獲外部變量的時候,會保持一個強引用,當在 block 中捕獲 self 時,由于對象會對 block 進行 copy,于是便形成了強引用循環

多次調用 weakSelf 的方法,有可能在 block 執行過程中 weakSelf 變為 nil,

涉及到 weak 本身的機制了。weak 置 nil 的操作發生在 dealloc 中

最后一個持有 object 的對象被釋放的時候,會觸發對象的 dealloc,而這個持有者的釋放操作就不一定保證發生在哪個線程了。因此 block 執行的過程中 weakSelf 有可能在另外的線程中被置為 nil。

MRC 下Block 默認是分配在棧上的,除非進行顯式的 copy

ARC 也更加傾向于把 Block 放到堆上

Block進階

Block在內存中的位置分為三種類型NSGlobalBlock,NSStackBlock, NSMallocBlock

參考資料http://blog.devtang.com/2013/07/28/a-look-inside-blocks/

4 堆和棧

堆內存要程序員手動回收(動態分配和回收內存的)

棧內存會被系統自動回收(靜態分配和動態分配)

靜態分配是系統編譯器完成的,比如局部變量的分配

動態分配是由alloc函數進行分配的,但是棧的動態分配和堆是不同的,它的動態分配也由系統編譯器進行釋放,不需要程序員手動管理

只有oc對象需要進行內存管理

非oc對象類型比如基本數據類型不需要進行內存管理

棧是向低地址擴展的數據結構,是一塊連續的內存的區域。

堆是向高地址擴展的數據結構,是不連續的內存區域。(堆是鏈表方式存儲)

兩者區別

管理方式不同;(棧:自動 堆:手動)

空間大小不同;( 棧:1M?? 32位系統 堆4G

能否產生碎片不同;(棧:后進先出 堆:頻繁new release 大量的碎片使程序效率變低)

生長方向不同;(棧: 生長方向是向下的,是向著內存地址減小的方向增長 堆:相反)

分配方式不同;(棧:靜態和動態 堆:全動態)

分配效率不同;(棧:機器系統提供的數據結構,計算機會在底層對棧提供支持:分配專門的寄存器存放棧的地址,壓棧出棧都有專門的指令執行,這就決定了棧的效率比較高。 堆:C/C++函數庫提供的,它的機制是很復雜的,例如為了分配一塊內存,庫函數會按照一定的算法(具體的算法可以參考數據結構/操作系統)在堆 內存中搜索可用的足夠大小的空間,如果沒有足夠大小的空間(可能是由于內存碎片太多),就有可能調用系統功能去增加程序數據段的內存空間,這樣就有機會分 到足夠大小的內存,然后進行返回。顯然,堆的效率比棧要低得多。)

關于iOS開發的一些知識點

非常好我支持^.^

(0) 0%

不好我反對

(0) 0%

      發表評論

      用戶評論
      評價:好評中評差評

      發表評論,獲取積分! 請遵守相關規定!

      ?
      主站蜘蛛池模板: 人人干免费 | 国产精品网址你懂的 | 狠狠色影院| se94se最新网站 | 欧日韩美香蕉在线观看 | 伊人天堂在线 | 韩国最新三级网站在线播放 | 国产三级精品播放 | 欧美色伊人 | 福利片午夜 | www.你懂的.com| 俄罗斯女人69xxx | 久久精品亚洲 | 老师叫我揉她内裤越快越好 | 一级女人毛片人一女人 | 国产成人综合网在线播放 | 亚洲精品亚洲人成人网 | 国产一级特黄在线播放 | 一级特黄视频 | 手机看片福利日韩 | 久久精品免视看国产成人2021 | 激情综合五月 | 狠狠干网| 四虎看片| 亚洲第一视频在线观看 | 天天视频免费观看高清影视 | 日本三级在线播放线观看2021 | 日日操夜夜骑 | 河南毛片| 丁香欧美 | 好爽好紧好大的免费视频国产 | 久久www免费人成_看 | 亚洲成网站www久久九 | 久久福利免费视频 | 亚洲日本视频 | 久久精品99无色码中文字幕 | 五月综合激情网 | 男女在线视频 | 国产美女一级高清免费观看 | 老师我好爽再深一点好大 | 失禁h啪肉尿出来高h受 |