さえない日曜プログラマのオレは、
addRecordを使わずにsetRecordだけ使ってる。

最初に確保したい分だけのレコード数をaddRecordで空データで作成しておき、
んでsetRecordで本当に入れたいデータを入れていく。
getNumRecordsで数が合わなくなったらデータは一度すべてまっさらにしてる。

ただ、この方法だとバージョンアップで保存したいデータの数や形式が変わった時に大変。
いずれにしても、あまりおすすめできるようなやり方じゃないとは思ってる。