[
] 一些問題的簡單回覆
稍微有點時間,來回覆一下一些朋友之前問到的問題。
一、可否能夠改寫OpenVanilla 通用輸入法表格編輯器—讓使用者在自行編輯輸入法表格的時候,只要先點選某個按鍵組合,然後便可以列出所有符合這個按鍵組合的對應輸出結果。如果某個輸入法的設計是會出現很多候選字(例如注音、拼音等),會需要這樣功能。
最近幾天花了點時間,是寫出了這樣的東西。能夠在選取某一筆資料之後,列出對應的資料,換句話說,就是要建立資料之間的關聯,也就是需要一些資料庫方面的功能;既然需要一些資料庫功能,又適用 Cocoa 開發,在改寫的時候,便使用了蘋果提供的 CodeData 架構,透過CoreData建立了一個簡單的Model,在讀入輸入法表格的時候,將資料轉換成NSManagedObject,一邊輸入一邊檢查:如果某個對應到按鍵組合的物件存在,那就使用這個物件,反之則建立物件,將對應的結果與之建立關聯,在GUI方面,則是用 Cocoa Binding 搞定…。
右圖便是開啟簡易輸入法的表格時的畫面。
雖然是做出來了,但是效能實在很不好,大概算了一下,如果要這麼做,處理一筆資料,大概要花上0.1到0.2秒的時間,而一般的輸入法少說都有一兩萬筆資料,更不要說有七八萬筆資料的輕鬆輸入法了;以兩萬筆來說,那就需要花上至少半小時才能夠載入,在選好要載入的檔案之後,就只能看到奪命小彩球一直轉,整台機器近乎呈現當機狀態。這樣的東西實在不太能夠拿出來見人,而總感覺問題應該出在 CoreData 本身。
