原创 NSOperation與GCD

NSOperation 抽象類 - NSInvocationOperation - NSBlockOperation NSOpeartionQueue * GCD 的核心概念:將任務(block)添加到隊列,

原创 GCD的死鎖

GCD爲多線程中的重點, 今天寫了幾個小demo分享一下 -J- 給主線程添加同步任務 - (void)demo1{ NSLog(@"哈哈哈"); // 此處給主線程添加同步任務 // 它會等主線程任務

原创 dispatch_get_current_queue的廢棄

由於iOS7以後 dispatch_get_current_queue 被廢棄 在主線程分離出一個子線程: - (void)touchesBegan:(NSSet<UITouch *> *)touches withEven

原创 產品迭代開發

當產品基礎框架開發完成,進入成熟期後,產品的週期化迭代就變得非常重要。 什麼是產品迭代? 在一定時間內,對該產品一定量的新需求加以評估、篩選、開發、測試以及上線的一系列行爲的總稱。 爲什麼要產品迭代 固定的週期有助於爲項目團

原创 KVC/KVO

1、KVC簡介 全稱是Key-value coding,翻譯成鍵值編碼。顧名思義,在某種程度上跟map的關係匪淺。它提供了一種使用字符串而不是訪問器方法去訪問一個對象實例變量的機制。 KVC的用法: 簡單來說就是給對象的私有屬性

原创 運行時

很多人都喜歡研究底層的東西, 因個人比較low, 只能講講runtime在實際工作中的應用. 應用1 動態獲取類的屬性 // 獲取成員變量列表, 第三方框架使用此方法居多 // 參數1: 要copy的類 // 參數2: 屬性

原创 GCD調度組的使用

在一些社交應用比如微博配圖時張數不確定, 如何動態調整圖片的尺寸? GCD調度組可以解決我們的難題. 下面代碼統一監聽A/B任務完成, 才執行更新UI - (void)group1 { dispatch_group_t

原创 原生SQLite-數據庫操作

基於SQLite自身的諸多優點, 在IOS開發中它是不二的選擇; 除了會使用框架, 接下來我們來看一下原生SQLite是如何操作的. 添加動態庫 注意: xcode7 默認添加 libsqlite3.tbd, 這種tbd的方

原创 性能測試

對於移動端開發, 程序性能尤爲重要; 因此我們經常會對自己的程序性能測試進而對代碼進行優化. 平時我們最常用的應該是: public func CACurrentMediaTime() -> CFTimeInterval 這裏我介

原创 透明字體如何設置?

有時會在一些APP上看到透明字體, 感覺非常漂亮, 那麼透明字體如何設置呢? 思路: 能顯示字體, 當然是用label, 那麼接下來我們自定義label–> EJLabel, 使用drawRect方法將透明字體畫上去: - (vo

原创 高清圖片上傳內存問題解決

沒有圖片的APP在市面上比較少見,因此在程序開發中關於圖片上傳的內存問題不得不成爲我們關注的焦點. 當遇到高清圖片, 如果不對圖片進行處理, 一則APP內存暴漲, 二則消耗用戶流量過多, 降低用戶體驗. 圖片處理有兩種方式: 調

原创 Barrier的使用

Barrier主要用於在多個異步操作完成之後,統一對非線程安全的對象進行更新, 如NSMutableString/NSMutableArray… Barrier的工作原理 將所有之前添加的異步執行完成之後,在同一個線程中,順

原创 NSArray小知識

NSMutableArray *list = [NSMutableArray arrayWithCapacity:array.count]; arrayWithCapacity 容量,指定數組容量,在實例化數組的同時,準備好容量

原创 AFN封裝

對於做開發的人來說, AFN可謂是家喻戶曉. 基本上每個控制器界面都會都會涉及到網絡請求, 由此可見AFN在我們開發中的重要性以及我們對AFN框架的依賴性; 之前接觸過ASI的朋友應該是深有體會, 當ASI不再更新被廢棄的時候,

原创 如何修改系統控件

多數情況下, 系統原生控件太醜, 無法滿足我們的需求. 那麼系統控件如何修改呢? 思路: 找到你所需要更改的內容 使用KVC賦值 需求: 更改badgeValue的系統背景圖片 查看視圖層級結構, 找到其View對應的