簡體   English   中英

上下文為零時,Swift Temp CoreData對象無法設置ivars

[英]Swift Temp CoreData object can not set ivars when context is nil

我有一個要實例化(臨時使用)的CoreData對象,但是我不想保存或插入上下文中以實現持久性。

我要創建的對象的類定義如下:

import Foundation
import CoreData

@objc(USubmission)

class USubmission: NSManagedObject {

    @NSManaged var subid: NSNumber

我創建這樣的對象(臨時使用但不持久)

let entitiyDesc = NSEntityDescription()
entitiyDesc.name = "USubmission"
entitiyDesc.managedObjectClassName = "USubmission"
let sub = USubmission.init(entity: entitiyDesc, insertIntoManagedObjectContext: nil)

但是,當我設置臨時對象的ivars之一時,出現以下錯誤:

sub.subid = 0

錯誤:

[USubmission setSubid:]:無法識別的選擇器已發送到實例

我檢查了該對象,它看起來像正確的對象,而不是NSManagedObject對象。

為什么當上下文為nil(臨時對象)而不是上下文時出現此錯誤?

您必須從ManagedObjectContext創建一個實體描述:

let entitiyDesc = NSEntityDescription.entityForName("USubmission", inManagedObjectContext: **yourContext**)

如果您不想保存使用實體創建的對象,則將nil傳遞給insertIntoManagedObjectContext ,就像您已經做的那樣:

let sub = USubmission.init(entity: entitiyDesc, insertIntoManagedObjectContext: nil)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM