まずはこの画像を見ていただきたい。
ある時点からユーザ辞書に登録していた単語が消え、さらに、追加できなくなっていた。
今まで登録していた単語は変換候補として表示されるので特に不自由は感じていなかったが、やはり使える物が使えないという気持ち悪さもあったので何とか修復しようと試みた。
検索すると、同じようにユーザ辞書が消えたり登録できなくなった方のブログ等を見つけたが、工場出荷状態に復元して使えるようにしたりと、結果的に初期化するような事が書いてあった。
私もそれにしたがって初期化をしたら確かにユーザ辞書に登録できるようになっていたが、バックアップから復元すると再び同じ現象となり、また、iPhoneの強制終了(強制再起動)をしても無理であった。
登録した語句が消えてさらに登録できなくなったユーザ辞書

工場出荷状態に戻すと登録することができて、バックアップから復元すると再び使えなくなるということなので、ユーザ辞書関連が悪さをしているのではないかと推測。iTunesでバックアップしたデータを見られるアプリが無いか調べてたら、http://blog.sakurachiro.com/2010/06/ios4-user-dictionary/ というサイトを発見しました。
上記サイト内に紹介されているiBackupBotをダウンロードし、記事に従って辞書データを抽出して見てみます。

レコード状態
PupSQLite というツールを使ってZTIUSERWORDを見てみると、26行目におかしいレコードが1件存在するのを確認。
つまりはテーブル(データベース)が壊れ、レコードの状態がおかしいから検索ができなくなり、そして登録ができなくなったということなのでしょう。これでは登録ができなくて当然です。iPhone側で検索登録をできなくしてシステム全体のフリーズを防いでいたのかもしれません。

レコード削除
おかしなレコードを削除します。


行番号を修正します。(27→26)

sqllitepic4
別テーブルの Z_PRIMARYKEY にある最大行「Z_MAX」の値も修正
こちらは修正前。

sqllitepic5
別テーブルの Z_PRIMARYKEY にある最大行「Z_MAX」の値も修正

これら修正を行った後、上述したサイトに従ってファイルを戻す。
戻してからiBackupBot for iTunesにてiPhoneを復元すると、見事にユーザ辞書に登録した単語が表示され、単語の追加もできるようになりました。
今後同じような状態となった方がいた時、この記事が少しでもお役にたてれば幸いでございます。続きを読む