原创 將時間戳轉換爲時間,並輸出“剛剛”、“昨天”、“XX小時前”等

我們在開發iOS程序中需要有接口,有時候藉口提供的時間是NSNumber類型的並且是時間戳。比如說:1447375370 其實這個意思就是1970年0點到當前時間的秒數。 看到這裏,大概我們心裏就有數了。爲了方便編程中使用,我們

原创 動態調整UILabel的高度或寬度

動態調整UILabel的高度或寬度 使用示例:(下面的例子就返回了一個系統默認字體,大小爲18,保持寬爲300,動態調整高度的CGSize) NSString *testStr = @"動態調整UILabel的高度或寬度"; CG

原创 XIB創建的cell中的已經適配過的控件如何動態改變高度?

在自定義cell時,無論是UITableView還是UICollectionView,我們都習慣於用XIB來自定義cell,並完成屏幕適配。 若是用代碼來動態調整某個控件的frame倒是不難,但是用XIB我們自己弄好的約束卻怎麼辦

原创 iOS開發 組件化 Podfile 過大 或 內容太長 怎麼辦?

iOS開發 組件化 Podfile 過大 或 內容太長 怎麼辦? 在日常的iOS開發中,我們通常會使用 Cocoapods 來管理各種第三方,或者組件化時,管理我們自己的組件。 在項目逐漸複雜的情況下,Podfile 也變得臃腫

原创 iOS開發 高性能添加圓角(支持4個不同半徑)

在開發中,添加圓角似乎再常見不過了。不過它帶來的性能問題以及離屏渲染問題,也受到部分開發者的注意。 如何才能在不影響性能的前提下添加圓角呢? 相信大家也看過很多博客,寫得也很不錯,都是這種解決辦法。我隨便列舉幾個 通過設置 CA

原创 dispatch_sync() 的祕密!它一定會造成死鎖嗎?

dispatch_sync() 的祕密!它一定會造成死鎖嗎? 平時我們可能很少用到 dispatch_sync ,只是知道,如果調用 dispatch_sync(dispatch_get_main_queue(), block) 的

原创 Xcode工程,藍色文件夾、黃色文件夾以及 .bundle文件的區別

Xcode工程,藍色文件夾、黃色文件夾以及 .bundle文件的區別 用過 Xcode 做過開發的應該都知道,在左邊的目錄索引中,有藍色的文件夾,黃色的文件夾,還有 .bundle 文件。那麼它們都有什麼區別呢? 先做總結,再詳細解釋

原创 黑魔法到底有多強大?(二)融雲會話列表Cell標題顯示富文本、添加圖片

黑魔法到底有多強大? 第二篇 融雲會話列表Cell標題顯示富文本、添加圖片 TIPS:我們可能都看過無數的文章,講解在OC中如何實現Method Swizzling 交換方法,但是在實際應用中,好多人可能想不到這一點。所以我準備寫一系

原创 黑魔法到底有多強大?(一)各種第三方SDK的導航條

黑魔法到底有多強大? 第一篇 各種第三方SDK私有控制器的導航條 TIPS:我們可能都看過無數的文章,講解在OC中如何實現Method Swizzling 交換方法,但是在實際應用中,好多人可能想不到這一點。所以我準備寫一系列利用黑魔

原创 Objective-C 黑魔法如何hook系統私有類?實現真正的Method Swizzling!

Objective-C 如何hook系統私有類? Tip:在讀這篇文章之前,最好對 SEL、IMP 有一定的瞭解。否則很容易懵的,得不償失哦~ 衆所周知,OC中Runtime黑魔法的強大!也叫做Method Swizzling,在很多博客

原创 Unity與iOS相互調起、交互

Unity與iOS相互調起、交互 上一篇我們已經實現了將Unity導出的工程集成到原生iOS項目中,接下來我們來實現Native與Unity相互切換、調起。 需要注意的是,Unity一旦初始化,是不能關閉的,否則App直接就會被關閉。所以

原创 一個iOS開發本地資源文件的加密方案

一個iOS開發本地資源文件的加密方案 在開發中,不可避免的要有一些本地資源文件要放在 mainBundle 裏面,比如 plist 文件、json文件、視頻、圖片 等等這樣的。那如果能拿到 ipa 文件,直接解包就可以看到我們 main

原创 Block內部訪問實例變量會出現的問題

最近開發中正好遇到了一個問題: 首先這是一個會引起循環引用的 Block 屬性, 然後需要在 Block 中訪問實例變量。 ViewController #import "ViewController.h" #import

原创 iOS開發 - 利用SQLite和歸檔實現一個完美的數據持久化方案

iOS開發 - 利用SQLite和歸檔實現一個完美的數據持久化方案 數據持久化方案,可能很多人能想到,SQLite、CoreData、各種方案。有利有弊。我想到了一個比較完美的解決方案。 要用到兩個第三方: MJExtension

原创 探討OC的內存管理 以及防止循環引用retain cycle 代理爲什麼用weak block爲什麼用copy

首先聲明OC的內存管理機制:引用計數。 當一個對象的引用計數爲0時,這個對象就會被釋放。 銘記以上兩點,我們開始來探討。 換句話說,如果一個對象,沒有強指針指向,就會被釋放。 舉個很形象的例子,假如每一個對象都是一隻狗,每一個強指針都是