2016-05-07 20 views
0

少し新しいCoreDataです。コアデータdeleteObjectは、すべてのプロパティをnilに設定します。

私はそのはnilにobject内のすべてのプロパティを設定し、私のNSManagedContextオブジェクトにobjectdeleteObject()を呼び出します。とにかくこれを避けるために私にはありますか?私は無効にされたくありません。

私のプロジェクトはSwiftにあります。

+0

'deleteObject()'は 'object'を完全に削除することになっています。 – vadian

+0

@vadian:私はそれを理解しています。しかし、それをnsmanagedcontextから削除するだけで、自分のメモリではないのですか? –

+0

その目的は何ですか?オブジェクトが削除されると、そのオブジェクトはなくなります。 – vadian

答えて

1

あなたはCoreDataの目的を誤解しています。これは永続的なストアを管理する方法です。つまり、あなたのコンテキストを伝えるものが絶対的なものであることを意味します。したがって、deleteObject()の場合、そのオブジェクトは削除の準備ができており、もうそれに触れるはずはありません。

代わりに、メモリ内で使用するためのNSManagedObjectの新しいコピーを作成できるミラーオブジェクトが必要です。あなたはこのようにすることができます。

struct MirrorManaged { 
    var text: NSString 
} 

class Managed: NSManagedObject { 
    @NSManaged var text: NSString 

    func copyToMemory() -> MirrorManaged { 
     return MirrorManaged(text: self.text) 
    } 
} 
関連する問題