原创 pods的原理

CocoaPods是IOS項目的依賴管理工具,CocoaPods負責管理對第三方庫的依賴,即如果A依賴於B,B依賴C,我們在A工程裏指出A依賴於B,CocoaPods會自動爲我們下載C,並在構建時鏈接C庫。 IOS工程有3種庫項目

原创 ObjC和JavaScript的交互,在恰當的時機注入對象

ObjC和JavaScript的交互,在恰當的時機注入對象 原文地址: http://www.jianshu.com/p/2e53d87c826b * 警告:文章中提到的 * - (void)webView:(id)unuse

原创 xcode9下相冊訪問權限問題

iOS11下,蘋果對相冊的權限key做了調整,原來的 NSPhotoLibraryUsageDescription ,在iOS11之後,改成了 NSPhotoLibraryAddUsageDescription。 需要在 info

原创 YYImage顯示指定區域的webP圖片

YYImage 顯示指定區域的webP圖片 YYImage 顯示區域與圖片大小不一致時,默認顯示的是居中部分 如果想指定顯示區域 需要重寫YYImage 以下代碼爲顯示從1/8位置開始的圖片 #import "PLImage.h

原创 NSString轉換float的精度問題

NSString 轉換 float 的精度問題, 換double類型可以解決 @”0.01” 轉換成float時, 經常會變成 0.009999799 這種形式, 因爲float類型無法精準保存, 系統會選一個接近的值來代替.

原创 ios7以前使用[uicolor xxxcolor]類方法創建的顏色類型爲 UIDeviceCachedColorSpace

[UIColor WhiteColor]類方法獲取的CGColorGetNumberOfComponents是2 而且打印出來的UIDeviceWhiteColorSpace只有兩個數字 RGBA彩色顏色測試 獲取的C

原创 TOLL-FREE BRIDGING 和 UNMANAGED

TOLL-FREE BRIDGING 和 UNMANAGED 有經驗的讀者看到這章的標題就能知道我們要談論的是 Core Foundation。在 Swift 中對於 Core Foundation (以及其他一系列 Core

原创 MMKV–基於 mmap 的 iOS 高性能通用 key-value 組件

MMKV–基於 mmap 的 iOS 高性能通用 key-value 組件 {#activity-name} MMKV 是基於 mmap 內存映射的 key-value 組件,底層序列化/反序列化使用 protobuf 實現,性

原创 取消延時執行之坑

啓動3S延時執行有一份 [self performSelector:@selector(didRuninCurrModel:) withObject:@(YES) afterDelay:3.0f]; 在做取消操作時有兩個坑 1,

原创 UITableview偏移異常問題

UITableView在reloadData時,如果當前tableview的偏移處於末端,則系統會將其偏移置爲最大偏移量,導致設置的contentOffset無效。 解決方案: 需要在reloadData之前記錄刷新的臨界值,在刷

原创 scroll上的button延遲響應問題

UIButton在某些情況下不能立刻響應TouchDown事件,換句話說,迅速點擊按鈕時,你是永遠看不見這個按鈕的高亮狀態的. 出現這種情況時,這些按鈕都在UIScrollView的子類上.這是因爲 scroll有一個屬性del

原创 UIButton觸發邊界事件

UIButton觸發邊界事件時,事件並沒有觸發,而是到了遠離button近70個像素時才收到回調。這是因爲在UIButton周圍會有70px的擴展範圍。 與邊界有關的事件: UIControlEventTouchDragInsid

原创 談nonatomic非線程安全問題

談nonatomic非線程安全問題 背景 由於我對SDWebImage這塊比較熟悉,並且基於SDWebImage封裝了一層對業務更友好的HTSWebImage庫。所以一直以來SDWebImage的相關Crash都是我在負責。 由

原创 深入理解Tagged Pointer

深入理解Tagged Pointer 原文地址:http://www.infoq.com/cn/articles/deep-understanding-of-tagged-pointer/ 前言 在2013年9月,蘋果推出了iP

原创 深拷貝和淺拷貝

對象拷貝有兩種方式:淺拷貝和深拷貝。顧名思義,淺拷貝,並不拷貝對象本身,僅僅是拷貝指向對象的指針;深拷貝是直接拷貝整個對象內存到另一塊內存中。 定義 淺拷貝 copy 指針拷貝 - 將指針中的地址值拷貝一份. 只複製指向對象的指