原创 iOS 性能優化(一)

本文將從原理出發,解釋卡頓發生的原理,然後會講解項目中行之有效的幾個優化點,以此作爲日後的參考提醒。下面進入正題。 屏幕顯示圖像原理 我們知道,CRT顯示器的顯示原理是用電子槍掃描熒光屏來發光。如上圖所示,電子槍按照從左到右,然

原创 Category、load、initialize、Class、關聯對象、isa

一 、Category的實現原理 Category編譯之後的底層結構是struct category_t,裏面存儲着分類的對象方法、類方法、屬性、協議信息。在程序運行的時候,runtime會將Category的數據,合併到類信息中

原创 iOS 調試技巧(一)

很多人給工程調試時,每個界面都寫dealloc,能達到效果,未免有些麻煩。下面介紹一個小小實例: 控制器寫個分類,用runtime方法交換。 一、控制器、View分類 1.新建分類 #import "UIViewController+XY

原创 weak、dealloc內部實現

weak 經過編譯會調用以下兩方法, objc_initWeak storeWeak weak_register_no_lock 在內部先通過操作後(如判空、deallocating、isTaggedPointer),調用 weak_

原创 Category、load、initialize、Class、關聯對象、isa、superClass、方法緩存、方法查找、消息發送(objc_msgSend)、runtime

一 、Category的實現原理 Category編譯之後的底層結構是struct category_t,裏面存儲着分類的對象方法、類方法、屬性、協議信息。在程序運行的時候,runtime會將Category的數據,合併到類信息中(類

原创 iOS調試技巧(二)

Xcode 斷點調試時使用 格式 x是16進制,f是浮點,d是10進制 字節大小 b:byte 1字節,h:half word 2字節 w:word 4字節,g:giant word 8字節 如這樣一段代碼 NSInteger f

原创 iOS 性能優化 (二)

主要介紹圖片加載優化 繪圖實際消耗的時間通常並不是影響性能的因素。圖片消耗很大一部分內存,而且不太可能把需要顯示的圖片都保留在內存中,所以需要在應用運行的時候週期性地加載和卸載圖片。 圖片文件加載的速度被CPU和IO(輸入/輸出)同時

原创 組件化開發

公司新需求“打卡瓜分獎池”,公司工程又很複雜,功能模塊比較多,之前業開發過定數組件、購物車組件等,這次綜合組件化開發的優缺點後,再次打算將此需求當做小模塊,實行組件化開發。 公司工程實現路由解耦,簡單介紹一下: 字符串 NSStrin

原创 訂單支付流程

購物車訂單處理流程 根據上圖訂單頁面進行分析如何安全下訂單 進入購物車頁面,點選商品(書籍)時,將商品(書籍)productId 通過API傳給後端,然後返回書籍價格顯示給用戶,如圖1. 點擊結算按鈕,將勾選的商品(書籍)pro

原创 iOS 性能優化摸索

本文將從原理出發,解釋卡頓發生的原理,然後會講解項目中行之有效的幾個優化點,以此作爲日後的參考提醒。下面進入正題。 屏幕顯示圖像原理 我們知道,CRT顯示器的顯示原理是用電子槍掃描熒光屏來發光。如上圖所示,電子槍按照從左到右,然後從

原创 圖文混排

1.近日公司需要做個圖文混排的功能,自己就寫了demon,驗證完畢,覺得有必要分享給大家,使用簡單,相對於其他很多圖文混排要簡便許多。 2.裏面有正則工具RegexkitLite,導入後需要在Build Phases內找到Regexki

原创 iOS定時器三種初始化方式

定時器問題研究很多次,一直忘記寫博客,今天把以前研究的心得與大家分享,不足之處,請指點! #pragma mark - 定時器 // 方式1: - (void)createTimer1 {     // 方式1:    

原创 文章標題

block相關,先運行下面代碼,可註釋相關行,查看打印結果 記住iOS內用引用計數管理內存,記住引用計數爲0,釋放對象內存,非0就釋放不了。使用alloc new copy mutableCopy創建的對象,引用計數+1,release

原创 iOS 數據埋點

數據埋點 以下是數據埋點的基礎類型,供各位參考,初始化簡單,內部發送url也寫好,因工作需要暫時寫了基礎類型。個人建議使用“鉤子”去做,維護單一plist即可,耦合度降低很多,有時間會繼續更新。 DDYAnalyse SDK 簡單易用的埋

原创 iOS程序生命週期,蘋果內購、微信支付、支付寶支付

開發4年了,很少寫博客,主要是懶,哈哈。遇到不清晰的就翻翻以前的代碼。有時還找不到,現在發現博客可以更方便查找知識點,所以用博客做筆記吧。也有助於大家學習、交流,先寫一些基礎的吧。 一、iOS程序常識 1. 生命週期 程序啓動時,加載x