Loading...

CoreDataでリレーションを設定したクラスを使ったときにメモリ使用量が膨大にならない理由

CoreDataのリレーションを使ったアプリを作っているときにふと疑問に思ったことがあります。
「リレーションでつながったオブジェクトがプロパティとしてメモリに読み込まれて、そのオブジェクトとリレーションでつながっているオブジェクトもメモリに読み込まれて…と連鎖していくと、少しデータを読み込もうとしただけでメモリが大量に使用されてしまうのではないか」



しかし、実際はこのようなことが起こらないようにする仕組みがCoreDataには用意されていました。

Faultと呼ばれる空のインスタンスを一旦保持することでプロパティが際限なく読み込まれることを防いでいます。
プロパティへのアクセスが行われると実際のデータがディスクからメモリに読み込まれます。

参考
Swift 4123652684589892138
ホーム item