前言: 最近公司在藍(lán)牙設(shè)備,需要按照通過設(shè)備讀取的數(shù)據(jù)來實(shí)時(shí)畫出折線圖,參考了很多資料,然后自己封裝了一套畫折線圖的方法(支持畫封閉圖形,四邊形,三角形),如果有需要的小伙伴...
前言: 最近公司在藍(lán)牙設(shè)備,需要按照通過設(shè)備讀取的數(shù)據(jù)來實(shí)時(shí)畫出折線圖,參考了很多資料,然后自己封裝了一套畫折線圖的方法(支持畫封閉圖形,四邊形,三角形),如果有需要的小伙伴...
[TOC] 一、Keep in mind:F.I.R.S.T F.I.R.S.T 原則(參考優(yōu)秀測試實(shí)踐原則): Fast — 測試應(yīng)該能夠被經(jīng)常執(zhí)行; Isolated —...
新建項(xiàng)目-引入單元測試功能image在我們新建項(xiàng)目的時(shí)候,會有三個(gè)選項(xiàng)Use Core Data:數(shù)據(jù)庫Include Unit Tests:單元測試Include UI T...
NSObject.mm源碼 對象--id arm64 架構(gòu)中的 isa_t 結(jié)構(gòu)體 (bits格式一樣,一些信息的位數(shù)不一樣) 引用計(jì)數(shù) iOS引用計(jì)數(shù)管理之揭秘計(jì)數(shù)存儲 現(xiàn)...
weak 分析思路:匯編+源碼 打開匯編 定位到 objc_initWeak 全局搜索 objc_initWeak,找到實(shí)現(xiàn)的地方 定位到重點(diǎn)函數(shù) storeWeak 分析到...
[TOC] 本章介紹 KVC 的常見用法 準(zhǔn)備條件 SRPerson 類 SRStudent 類 一般 setter 方法 測試代碼 輸出 1. Key-Value Codi...
runtime 在研究objc_msgSend時(shí)先來了解一下runtime。 1.什么是runtime 我們的oc代碼轉(zhuǎn)化成可執(zhí)行的程序,大致需要進(jìn)過3個(gè)階段:編譯、鏈接、運(yùn)...
類的結(jié)構(gòu) OC中類的結(jié)構(gòu)分為isa、superclass、cache、bits,這里我們來探索一下cache。 cache_t 首先然我們來看看cache_t的源碼: 以上是...
OC對象的本質(zhì) 平時(shí)我們在工作中所寫的OC代碼,它的底層實(shí)現(xiàn)都是C/C++代碼。所以O(shè)C的對象都是基于C/C++的數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)的,所以O(shè)C對象本質(zhì)上就是一個(gè)結(jié)構(gòu)體。并且我們也...
iOS 底層原理 文章匯總[http://www.itdecent.cn/p/412b20d9a0f6] 本文的主要目的是理解類與isa是如何關(guān)聯(lián)的 在介紹正文之前,首先需...
本文講述在APP的開發(fā)過程中,需要從哪些方面對渲染性能進(jìn)行優(yōu)化。 1.盡量避免使用半透明 1.1原因 在使用半透明時(shí),會發(fā)生Color blending現(xiàn)象。在渲染的時(shí)候,為...
廢話不多說直接上代碼: 上面代碼定義了兩個(gè)結(jié)構(gòu)體struct1、struct2,可以看到這兩個(gè)結(jié)構(gòu)體里面的內(nèi)容是一樣的,不一樣的是交換了b和c的位置。運(yùn)行之后得到結(jié)果:24-...
前言: iOS 高級之美 是本人總結(jié)了一些工作實(shí)際開發(fā)研究以及面試重點(diǎn),圍繞底層進(jìn)行 源碼分析 - LLDB 調(diào)試 - 源碼斷點(diǎn) - 匯編調(diào)試,讓讀者真正感受 Runti...
在我們平時(shí)寫OC代碼時(shí),alloc、init代碼相信沒一個(gè)iOS開發(fā)者都已經(jīng)熟悉的不能再熟悉了,那么你是否知道alloc init做了些什么。 alloc 直接上代碼: 運(yùn)行...
加載TGA圖片 最終運(yùn)行結(jié)果 步驟 創(chuàng)建LDQShaderTypes.h文件. 這個(gè)文件中放的是Metal與OC之間共享的類型和枚舉常量.代碼如下: 創(chuàng)建.metal文件(選...