原创 IOS7.0系統上,特定顏色調用`- getRed:green:blue:alpha:`方法返回結果有誤的問題

1. 問題描述: 項目中,一個頁面的NavigationBar是有動畫效果的,Title的顏色會不斷變化。測試的時候發現,在IOS7.0系統上本來應該是白色的Title變成了黑色。調試發現問題出在一個系統API上- getRed:

原创 移植 C/C++ 代碼至 Android 平臺經驗總結

  算法同學提供了一個圖像分析能力,使用 C/C++ 實現,依賴了 Tensorflowlite、 OpenCV 等庫。要在 Android 上使用這個能力,需要進行移植。移植可分爲兩步,第一步是面向 Android 設備的指令集

原创 個人主頁常見的頭像與背景圖不同步移動的下拉效果實現

前言 我自己想出來的實現方式,而且我覺得這樣實現效率最高。 效果圖 原理 假設背景圖比用戶信息視圖高x,那麼將背景的頂部x/2和底部x/2隱藏起來,如圖所示 下拉的時候,讓背景的移動速度是內容移動速度的1/2 下拉到一定程

原创 自己動手(二)──PullToRefresh之上拉翻頁(3)

前言 其實,上拉作爲一個手勢可以和很多動作關聯,不僅僅侷限於翻頁。我的實現裏面很多東西寫的比較死,比如其實bottom view其實可以由使用者創建,bottom view在上拉過程中狀態的改變也可以定製,通過addView加入

原创 可滑動關閉的對話框(一)

前言 Uber大家都用過,有時候它的對話框是從頂部落下來,你可以把它推上去關閉,或者把它拽下去關閉。我覺得這種交互方式很好。符合認知,也更加便捷。用在一些非關鍵信息的展示很合適,比如廣告。 效果圖 原理 並沒有去繼承Dialog

原创 從源碼角度分析RACObserve的實現原理(一)

前言 作爲IOS初學者,分析的深度非常有限,所以本文更像是學習筆記,歡迎批評指正。 原理 RACObserve是個宏,RACObserve(TARGET, KEYPATH)最終是執行[target_ rac_valuesForK

原创 說說網絡協議

  現在大多數的應用都需要頻繁的請求網絡,對網絡庫進行優化的價值是巨大的。作爲一個業務團隊開發,網絡請求多是用基礎架構團隊提供的庫。最近做了一次對比,發現公司基礎架構團隊提供的網絡庫比標準 http 快很多(差不多一倍)。核心的優

原创 說說補碼

  所有的數學原理,背後都是最簡單最自然的思維和道理而已!首先我們知道一個數在計算機裏是用其補碼形式表示、參與計算的,這個補碼就是所謂機器數。補碼被設計出來就爲了 CPU 可以把減法當加法算。而把減法當成加法算,原理和我們算法裏學

原创 對象回收時 Weak 指針自動被置爲 nil 是如何實現的

前言     我們都知道 Weak 指針不會增加所引用對象的計數,並在引用對象被回收的時候自動被置爲 nil 。通常用於解決循環引用問題。那麼,自動被置爲 nil 是如何實現的呢?答案是 Weak 表。 Weak 表     Ru

原创 UIButton使用RACCommand後setEnable方法失效的問題

問題描述 首先,我們知道RACCommand有如下初始化方法,可以傳入enabledSignal,用於控制按鈕的enable狀態。 - (id)initWithEnabled:(RACSignal *)enabledSignal

原创 編輯距離算法應用總結

  項目中應用了編輯距離算法解決問題,做個總結。作爲業務團隊的同學,平時應用算法解決問題的機會並不多,但是還是要有這個能力 / 思維,對技術架構 / 技術選型都有幫助,遇到算法資源不足的情況,也能頂上。編輯距離算法可以用於衡量文本

原创 MJRefresh中異步更改UI爲Refreshing狀態導致內部狀態和UI狀態不一致的問題

1. 前言     項目中,使用 MJRefresh 作爲下拉刷新控件。在手動觸發下拉刷新時候遇到了一個 bug,看了一下 MJRefresh 的源碼,發現 MJRefresh 的實現不太健壯。 2. 問題描述     如果我們這

原创 Objective-C 消息機制學習總結

    message 機制可以說是 objc 最重要的機制。零零散散看了 method cache、method search 以及 message forward,今天把三者串起來總結一下。 message 機制帶來很大的靈活

原创 Weak 指針源碼學習

    weak 指針,大家都不陌生。之前也簡單學習了一下,總結了一下對象在回收時 weak 指針是如何被 nil 掉的。不過我對 weak 指針的一些方面還有一些疑問,所以去看了一下源碼。我的疑問主要是: weak 指針使用時

原创 'BAD_ACCESS' 錯誤解決記錄,一個與 '__bridge' 有關,一個與 'out parameter' 有關

一. 錯誤 Thread 1: EXC_BAD_ACCESS(code=EXC_I386_GPFLT) 二. 錯誤代碼示例 1. __bridge CFAttributedStringRef attributedString