iOS 平台 SQLite 性能優化

開始

在 ios 平台,數據永久化的存儲方式就那麼幾種,比如說coredata,比如說realm,還有nosql的幾種方案,但是很遺憾,nosql的幾種方案支持的功能都還是太少,這樣就讓對它們的選擇顯得十分雞肋——畢竟,如果是簡單的應用的話,那就還不如其他方案來的方便快捷——雖然nosql是趨勢。

這次我們來談談另一種比較常見的儲存方案——sqlite,這個東西很厲害,它是一個用c實現的[……]

點擊跳轉以繼續閱讀

如何自定義 落格輸入法 ?

如何自定義落格輸入法?

在落格輸入法中,我為你提供了強大的自定義功能。不論是簡單地新建一種雙拼方案,還是導入一份五筆輸入法的碼表,它都能完成。

首先,我們從概念說起

按鍵映射方案

落格輸入法用它來生成對應的映射方案,比如智能abc、比如自然碼等等。按鍵映射方案有兩個文件,比如“智能ABC.plist”那麼就要有對應的“智能ABC_rev.plist”,後者不是必須,但如果你想開啟“按鍵[……]

點擊跳轉以繼續閱讀

獲取 中文 維基百科語料

最近在做輸入法的詞庫,實現新的整句輸入模型,(回頭我會把之前的基於詞的整句輸入模型講講),新的整句輸入模型是基於 HMM (也就是隱馬爾可夫模型)來做的,當然了,由於我個人設備資金等有限,只做了二階矩陣。不過即使如此,模型還是需要訓練的。

當然,不是說用小說名著來訓練就不好,只不過很難找到各行各業的相關小說,畢竟,它們覆蓋的面積太單一了,這其實並不是高質量的語料庫。說起高質量,那自然是非維基[……]

點擊跳轉以繼續閱讀

swift 中內存狂飆的問題

在使用 Swift 語言進行開發的時候,很多朋友會莫名奇妙地遇到內存爆滿的問題,明明有 ,明明釋放了內存,卻還是讓程序的內存佔用隨著循環而一路飆升。

這裡其實並不是出現了內存洩露,這其實是 的一個機制:在每一個主 Runloop 結束的時候進行清理。也就是說,它有一套必要的緩存機制——畢竟,實時釋放的話誰能保證你的局部變量要不要留下來給後續的代碼使用呢?

但顯然,這個必[……]

點擊跳轉以繼續閱讀

SourceKitService 佔用大量內存和 CPU 的解決辦法

在使用 Xcode 進行 Swift 語言開發軟件的時候,不少人在項目中後期都會遇到這麼一個問題,如題圖那樣:SourceKitService 佔用大量的 CPU 和內存,甚至直接導致系統卡死。

那麼,這到底是怎麼一回事呢?在 StuckOverflow 上的高票答案是這麼說的:

在活動監視器裡找到 SourceKitService 雙擊它,看它打開了哪些目錄,去把緩存刪除然後強[……]

點擊跳轉以繼續閱讀

如何學習自然碼輔碼?

自然碼是個比較古老的雙拼方案了,有多古老?古老到現在不少用戶都根本不知道它還有一套輔碼方案。

自然碼的輔碼稱不上是形碼,它之所以被稱為是輔碼,就是因為這套方案的設計初衷還是作為輔助,所以它並不能像小牛輔碼那樣做到非常低的重碼率——但是加上音的話,用起來還是很高效。

為什麼就算如此還說它輸入高效呢?因為它設計之初就是為了輔助,这就直接决定了这套方案十分容易被接受和学习!有多简单?就是偏旁[……]

點擊跳轉以繼續閱讀

讓 SSH 走代理連接服務器

很多網絡運維、或者站長需要通過 ssh 來管理服務器、vps,如果不湊巧,你和服務器之間相隔了一堵 GFW,那麼由於 GFW 會分析 ssh 數據包,結果就是導致稍微慢一點的網絡就會讓命令卡一分鐘。

GFW 現在完全有能力分析 ssh 流量特徵,以判斷你是在真的使用 ssh 配置服務器,還是使用它作為代理來瀏覽網頁。

如果有什麼好的辦法讓ssh像瀏覽器那樣指定翻牆就好了。

事實上,還真有[……]

點擊跳轉以繼續閱讀

Swift 使用 InputMethodKit 寫輸入法

如何在 iOS 上寫一款輸入法?這個問題已經被很多人解答過了。你可以輕易通過 Google 找到一篇詳細的教程。但是,在 macOS 上寫一款輸入法就沒那麼簡單了。

好吧,嚴格來講,是指用 Swift 在 macOS 上寫一款輸入法很難。主要的原因是 從來沒有人做過這件事情 。

目前能夠獲取的資料,除了蘋果官方的 API 說明(一點用也沒有),以及官方的 demo(很詳細但過時了,而且[……]

點擊跳轉以繼續閱讀

Swift 3 裡的 GCD

Xcode中 8 正式版已經發佈,我要在第一時間遷移我的專案到 Swift 3 —— 畢竟這是趨勢。

在遷移的過程當中我遇到了很多問題——比如 Xcode 提供的自動遷移工具根本沒有用,在我等待了兩個多小時之後,我放棄了,選擇手動遷移——畢竟,Xcode 的自動校正也是很好用的。

然而——在遷移過程當中,Xcode 一直處在 「indexing」 中,功能也不怎麼全……可能是由於 Swi[……]

點擊跳轉以繼續閱讀