原创 5. OC語法-block

block一、block的本質二、block的變量捕獲(capture)2.1 auto變量的捕獲三、block的類型四、block的copy五、對象類型的auto變量當block內部訪問了對象類型的auto變量時 一、block

原创 Flutter(九) 如何JSON轉Model

Flutter如何JSON轉Model一. 豆瓣數據二. 手動轉化三. json_serializable四. 網頁轉換五. 編輯器插件 在開發中,服務端通常給我們返回的是JSON數據,我們需要將JSON數據轉成我們的模型對象來

原创 4. OC語法-關聯對象

關聯對象一、思考:如何實現給分類“添加成員變量”?二、key的常見用法三、objc_AssociationPolicy四、關聯對象的原理五、關聯對象的原理 一、思考:如何實現給分類“添加成員變量”? 默認情況下,因爲分類底層結

原创 2. OC語法-KVO和KVC

KVO和KVC一、KVO1.1 KVO1.2 未使用KVO監聽的對象1.3 使用了KVO監聽的對象1.4 _NSSet*ValueAndNotify的內部實現1.5 KVO基本使用二、KVC2.1 KVC2.2 setValue:

原创 3. OC語法-分類Category

分類Category一、 Category的底層結構二、 Category的加載處理過程2.1 加載順序2.2 源碼解讀順序三、+ load方法四、+initialize方法五、總結load、initialize方法的區別什麼?l

原创 OC面試題總結

iOS面試題一、面向對象1.1 一個NSObject對象佔用多少內存?1.2 對象的isa指針指向哪裏?1.3 OC的類信息存放在哪裏?二、KVO2.1 iOS用什麼方式實現對一個對象的KVO?(KVO的本質是什麼?)2.2 如何

原创 1. OC語法

OC語法一、面向對象1.1 Objective-C的本質1.2 OC對象的本質1.3 實時查看內存數據1.4 2個容易混淆的函數二、常用LLDB指令三、OC對象的分類3.1 instance3.2 class3.3 meta-cl

原创 字節、十六進制、二進制之間的關係

一個字節是由兩位16進制數組成。 最常用的字節是八位的字節,即它包含八位的二進制數。十六進制一般用數字0到9和字母A到F(或a ~ f)表示,其中:A ~ F表示10~15,這些稱作十六進制數字。十六進制數轉換成二進制數:把每一個

原创 閒魚基於Flutter技術的架構演進與創新

一、Flutter在閒魚的優勢與挑戰 中小型團隊 安卓用戶比蘋果用戶的人數多很多的時候 二、閒魚的架構演進與創新 2.1 已有App + Flutter 2.2 Flutter + 已有Native能力

原创 09-1-ARM64彙編之基礎

文章目錄1. iOS彙編1.1 arm64彙編和x86彙編1.2 如何用匯編寫一個函數?2. 指令2.1 mov2.2 ret2.3 add2.4 sub指令2.5 cmp2.6 跳轉指令b 和 bl2.6.1 b2.6.2 bl

原创 Flutter(二十) 打包發佈

Flutter打包發佈一. Android打包和發佈1.1. 填寫應用配置1.1.1. 基本信息1.1.2. 版本信息1.1.3. 用戶權限配置1.2. 應用程序簽名1.2.1. 創建一個祕鑰庫1.2.2. 在app中引用祕鑰庫1

原创 Flutter(十八) 編譯模式

Flutter 編譯模式一. Flutter編譯模式1.1. debug模式1.2. release模式1.3. profile模式二. 開發中模式區分 在Android和iOS中,應用程序運行分爲debug和release模式

原创 08-1-iOS逆向之動態調試App

文章目錄一、什麼是動態調試二、Xcode的動態調試原理三、動態調試任意APP3.1 debugserver的權限問題3.2 如何給debugserver簽上權限3.3 讓debugserver附加到某個APP進程3.4 在Mac上

原创 07-4-iOS逆向之自定義命令行工具

文章目錄需求1. main 函數處理1.1 通過Xcode創建一個Single View App 項目1.2 編譯命令行1.3 編譯, 找到命令行1.4 測試命令行2. 讀取魔數(magic number)2.1 `magic n

原创 Flutter(十七) 實現國際化

Flutter實現國際化一. 國際化的認識二. 國際化的適配2.1. Widget的國際化2.1.1. pubspec添加依賴2.1.2. 設置MaterialApp2.1.3. 查看Widget結果2.2. 其它文本國際化2.2