原创 第一個應用

創建新項目 react-native init AwesomeProject 提示:你可以使用–version參數(注意是兩個槓)創建指定版本的項目。例如react-native init MyApp --version 0.

原创 消息轉發防止Crash

@implementation NSObject (Crash) + (void)load { [self exchangeInstanceMethodWithOriginalSelector:@selector(met

原创 iPhone屏幕投影到Mac屏幕

打開QuickTime Player 文件 -> 新建影片錄製 錄製按鈕邊的下拉菜單,攝像頭選擇手機的,麥克風選擇手機的 投影成功

原创 iOS第三方庫

推送 極光推送 https://www.jiguang.cn/ 崩潰 bugly https://bugly.qq.com

原创 AutoreleasePool

如何調試 示例代碼: // 1. 聲明方法 extern void _objc_autoreleasePoolPrint(void); // 2. 打印信息 _objc_autoreleasePoolPrint(); 案例 由

原创 Weak

示例代碼: __weak NSObject *object; { NSObject *object_1 = [NSObject new]; NSLog(@"Retain Count = %ld", CFGetRe

原创 Array和Dictionary

Array 創建 var array1 = [] var array2 : [Int] = [1, 2, 3, 4] var array3 : [Int] = [Int]() // 類型不同 var array4 = [1, "m

原创 let與var

賦值 var v = 10 let l = 20 基本類型 let aInt: Int = 10 let aFloat: Float = 10.0 let aDouble: Double = 10.0 let aBool: Boo

原创 GCD定時器

GCD定時器直接調用內核方法,與RunLoop無關 也就是說,拖動UI控件,不會影響到GCD定時器 示例代碼: @property (nonatomic, strong) dispatch_source_t source; //

原创 CADisplayLink

一個計時器對象,使任務以與屏幕刷新率相同的頻率被執行 使用方法1 @property (nonatomic, strong) CADisplayLink *displayLink; // 1. 初始化 self.displayL

原创 引用計數

如何查看對象的引用計數 printf("Retain Count = %ld", CFGetRetainCount((__bridge CFTypeRef)(對象)));

原创 NSMethodSignature、NSInvocation

NSMethodSignature 用於生成方法的返回值和參數的類型信息的記錄 示例代碼: # 生成方法簽名 NSMethodSignature *signature = [NSMethodSignature signatureW

原创 NSTimer

1. block 示例代碼: @property (nonatomic, strong) NSTimer *timer; // 1. 初始化定時器 self.timer = [NSTimer timerWithTimeInter

原创 推薦

數據結構與算法 嚴蔚敏 《數據結構》 《大話數據結構與算法》 網絡 《HTTP權威指南》 《TCP/IP詳解卷1:協議》 架構與設計模式 https://github.com/skyming/Trip-to-iOS-De

原创 設計模式

什麼是設計模式 是一套被反覆使用、代碼設計經驗的總結 使用設計模式的好處是:可重用代碼、讓代碼更容易被理解、保證代碼可靠性 一般與編程語言無關,是一套比較成熟的編程思想 設計模式的分類 創建型模式:對象實例化的模式,用於解藕