工場出荷状態に戻すと登録することができて、バックアップから復元すると再び使えなくなるということなので、ユーザ辞書関連が悪さをしているのではないかと推測。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を復元すると、見事にユーザ辞書に登録した単語が表示され、単語の追加もできるようになりました。
今後同じような状態となった方がいた時、この記事が少しでもお役にたてれば幸いでございます。続きを読む