原创 文本編碼檢測算法代碼的一個BUG
網上流行的文本編碼自動檢測,一般都是拷貝過來的,一個名爲erik peterson的人寫的。 看了一下其代碼,似乎有個地方寫錯了。 看代碼中添加的中文註解: sjis_probability(unsigned char* rawtext
原创 rxjava2要點介紹
rxjava2比1有什麼差異? 如果說開發rxjava1的時候,作者只是個程序初哥,那麼rxjava2的時候,作者已經是有點經驗的人了,rxjava2的接口函數、類名的命名以及接口調用方式,都比rxjava1成熟不少,且更容易理解,邏輯也
原创 深圖系列:Android Studio使用C/C++
前言 Android Studio支持C/C++,自從有了嚮導,用起來不再那麼麻煩,但是配置起來還是有點複雜。特別是拿到別人的C和C++庫要合併到自己的Java中使用,更爲明顯。 本文針對在Android Studio中使用C/C++語言
原创 pthread-2.9.1有關tsd的bug
問題現象 多線程如果使用pthread來實現tsd,在pthread_key_delete的時候卡死。 原因 pthread_key_delete內部代碼有錯,lock一次後多次unlock,導致卡住。 ... ptw32_mcs_l
原创 win32下不同方法實現tsd效率對比
前言 簡單地說,tsd是同一個變量在不同線程代表的不同的內容。 本文針對以下兩種方法進行對比效率: 1.__declspec(thread) 聲明 2.pthread方式 測試方法 測試代碼如下: // __declspec(threa
原创 ios的uitableview:實現不顯示選中項顏色效果
現象 uitablview點擊一下後,還遺留選定的顏色效果,這在setting類似的界面中肯定是不好看的, 目標 希望能類似delphi裏面列表控件有個hideselection一樣,按下的時候看到反饋顏色,擡起的時候不要再顯示顏色。 方
原创 攔截任意object-c類的函數
一種有缺點的方法 想攔截object-c類的函數,有一種方法是額外寫擴展類,例如下面代碼: @interface UIView(fordebug) - (void)removeFromSuperview; @end @implemen
原创 vmware中安裝Mac os桌面無法全屏的問題解決辦法
1.虛擬機啓動mac時候按command+R按鍵,直到出現蘋果公司的圖標; 注意,如果是windows鍵盤,按windows按鍵+R。 2.進入到修復模式,打開終端: 3.輸入:csrutil disable 4.回車後看下圖效果:
原创 使用ios各種鎖注意事項
抱歉,本文不教你怎麼寫代碼調用鎖。。。咱們談談高級點玩意,:) 性能的選擇 鎖的性能對比: 安全的選擇 OSSpinLock性能很高,但是,不安全,會出大事。除非保證每條使用它的線程的優先級是一致的。 所以,如果無法保證每條線程優先級一
原创 ios中pthread_mutex和dispatch_semaphore性能對比
因爲自旋鎖有風險已經別踢出局不再使用,所以對比了一下pthread提供的pthread_mutex_t以及dispatch_semaphore。 測試時候特別注意debug模式和release模式,結果可能會完全不一樣。 測試方法 模擬實
原创 object-c的property有關注意事項
自定義setter和getter,標識無效 property僅僅是爲了幫你節省setter和getter兩個函數, 通過指定atomic、strong之類的標識,xcode幫你自動生成相應不同的setter和getter函數。 所以,如果
原创 讓Xcode的異常斷點和微軟的vs一樣便捷!
囉嗦 用過vs調試的人都知道,程序異常了,會自動地斷點定位在發生異常的代碼處, 但是,換了xcode後,默認是不會自動定位在異常的代碼處的,而是在更上幾層的main函數裏面, 從調試的便捷性來看,這明顯是非常浪費程序員的時間的,程序員在調
原创 Xcode開發ios項目遇到自定義運行時屬性異常
異常包含以下字樣: this class is not key value coding-compliant for the key 原因: 添加了用戶定義的運行時屬性,去檢查一下, 點擊報錯對應的控件,然後看一下,不需要的刪除,如果是空
原创 pjsip加入amr支持
1.開啓開關 pjsip加入amr支持,需要開啓編譯宏開關。 可以通過configure來配置("opencore-amr路徑"需要替換爲自己實際的): ./configure --with-opencore-amr=/opencore
原创 xcode第三方庫自動下載管理工具cocoapods和Carthage
代碼倉庫工具介紹 不管是android studio還是xcode,如果沒有遠程代碼倉庫工具支持,那麼你的項目引用的第三方庫,必須手動下載放到代碼文件夾一起存放,複雜的話甚至還要額外做一些配置。 用上代碼倉庫工具,您只需寫上需要依賴庫的名