啥是野指針? 指向一個(gè)已經(jīng)刪除的對(duì)象或未申請(qǐng)?jiān)L問受限內(nèi)存區(qū)域的指針。而這里的野指針主要是指對(duì)象釋放后,指針未置空導(dǎo)致的野指針。該類Crash發(fā)生比較隨機(jī),找出來比較費(fèi)勁,比較...
解釋 更新布局總會(huì)重新觸發(fā)layoutSubviews方法。 layoutSubviews繼承于UIView的子類重寫,進(jìn)行布局更新,刷新視圖。如果某個(gè)視圖自身的bounds...
前言 最近遇到一個(gè)錯(cuò)誤,如下 正文 以.c文件的編譯流程為例,如下圖。我們按照以下的步驟,用gcc對(duì)代碼進(jìn)行編譯。 test.c的代碼如下 gcc指令處理 預(yù)處理 編譯 匯編...
swift的類型有哪些? ??swift的類型分為值類型和引用類型兩種。值類型在傳遞和賦值時(shí)將進(jìn)行復(fù)制,而引用類型只會(huì)使用引用對(duì)象的于個(gè)"指向"。swift中定義的很多類型都...
AsyncDisplayKit 是一個(gè)UI框架,最初誕生于 Facebook 的 Paper 應(yīng)用程序。它是為了解決 Paper 團(tuán)隊(duì)面臨的核心問題之一:盡可能緩解主線程的壓...
一.概述 在iOS中我們直接調(diào)某個(gè)對(duì)象的消息的方式有2種 系統(tǒng)NSObject類型中提供了2個(gè)方法 // 一個(gè)參數(shù)[self performSelector:<#(SEL)#...
performSelector方法 performSelector在運(yùn)行時(shí),調(diào)用方去找目標(biāo)方法selector,在編譯時(shí)不做校驗(yàn); 延遲執(zhí)行 -- 與RunLoop有關(guān) 調(diào)用...
1、UIView動(dòng)畫 animateWithDuration: animations:,該方法執(zhí)行一個(gè)動(dòng)畫duration是執(zhí)行所需時(shí)間,第二個(gè)是一個(gè)block,就是要執(zhí)行的...
runtime 運(yùn)行時(shí),oc是一門動(dòng)態(tài)性語言,程序在運(yùn)行時(shí)可改變結(jié)構(gòu),如添加方法,交換方法等.其實(shí)runtime就是一組用c/c++語言寫的api obj_msgSend的執(zhí)...
什么是CGD呢?以下摘自蘋果的官方說明。 ??Grand Central Dispatch (GCD) 是異步執(zhí)行任務(wù)的技術(shù)之一。應(yīng)用程序中記述的線程管理用的代碼是在系統(tǒng)級(jí)中...
實(shí)現(xiàn)模型數(shù)組深拷貝的方法1、最笨的方法就是通過遍歷逐個(gè)拷貝元素 2、也有人使用歸檔解檔實(shí)現(xiàn)數(shù)組內(nèi)部元素拷貝 3、這么好用的一個(gè)方法現(xiàn)在才發(fā)現(xiàn)(推薦) 這里是系統(tǒng)提供的方法,使...
Dart是一個(gè)在單線程中運(yùn)行的程序,這意味著:如果程序在執(zhí)行中遇到一個(gè)需要長(zhǎng)時(shí)間的執(zhí)行的操作,程序?qū)?huì)被凍結(jié)。為了避免造成程序的凍結(jié),可以使用異步操作使程序在等待一個(gè)耗時(shí)操作...
簡(jiǎn)談什么是KVC和KVO? KVC:鍵-值編碼,使用字符串直接訪問對(duì)象的屬性 KVO:鍵值觀察機(jī)制,它提供了觀察某一屬性變化的方法 KVC的底層實(shí)現(xiàn) 它是一種可以直接通過字符...
RunTime基礎(chǔ)詳解 Runtime的特性主要是消息(方法)傳遞,如果消息(方法)在對(duì)象中找不到,就進(jìn)行轉(zhuǎn)發(fā),具體怎么實(shí)現(xiàn)的呢。我們從下面幾個(gè)方面探尋Runtime的實(shí)現(xiàn)機(jī)...
Subject 基本介紹 Subject即使觀察者,也是可觀察序列,因?yàn)槎甲裱诉@兩天協(xié)議Observable、ObserverTypeRxSwift中Subject一種有三...