iPhone4のユーザ辞書が壊れて復旧までの経緯
工場出荷状態に戻すと登録することができて、バックアップから復元すると再び使えなくなるということなので、ユーザ辞書関連が悪さをしているのではないかと推測。iTunesでバックアップしたデータを見られるアプリが無いか調べてたら、http://blog.sakurachiro.com/2010/06/ios4-user-dictionary/ というサイトを発見しました。
上記サイト内に紹介されているiBackupBotをダウンロードし、記事に従って辞書データを抽出して見てみます。
PupSQLite というツールを使ってZTIUSERWORDを見てみると、26行目におかしいレコードが1件存在するのを確認。
つまりはテーブル(データベース)が壊れ、レコードの状態がおかしいから検索ができなくなり、そして登録ができなくなったということなのでしょう。これでは登録ができなくて当然です。iPhone側で検索登録をできなくしてシステム全体のフリーズを防いでいたのかもしれません。
おかしなレコードを削除します。
行番号を修正します。(27→26)
別テーブルの Z_PRIMARYKEY にある最大行「Z_MAX」の値も修正
こちらは修正前。
別テーブルの Z_PRIMARYKEY にある最大行「Z_MAX」の値も修正
これら修正を行った後、上述したサイトに従ってファイルを戻す。
戻してからiBackupBot for iTunesにてiPhoneを復元すると、見事にユーザ辞書に登録した単語が表示され、単語の追加もできるようになりました。
今後同じような状態となった方がいた時、この記事が少しでもお役にたてれば幸いでございます。