gpt4 book ai didi

ios - SWIFT CoreData NSManagedObject

转载 作者:行者123 更新时间:2023-11-29 02:48:46 25 4
gpt4 key购买 nike

我有一个自定义 NSManagedObject(在 Swift 中),看起来像这样

import UIKit
import CoreData

@objc(Item)
class Item: NSManagedObject {

@NSManaged var title:String

func entityName() -> String{
println("Entity Name")
let item = "Item"
return item
}

func insertItemWithTitle (title: String? , managedObjectContext:NSManagedObjectContext) -> Item{
println(title)
let item = NSEntityDescription.insertNewObjectForEntityForName(entityName(), inManagedObjectContext: managedObjectContext) as Item
if title {
item.title = title!
}
return item
}

初始化这样的东西并使用它的正确方法是什么

最佳答案

实例化(例如 init)由 Core Data 负责,因此建议您使用类工厂方法来完成您想要做的事情。例如:

@objc(Item)
class Item: NSManagedObject {

@NSManaged var title:String

class func entityName() -> String {
return "Item"
}

class func insertItemWithTitle(title: String, managedObjectContext:NSManagedObjectContext) -> Item {
let item = NSEntityDescription.insertNewObjectForEntityForName(Item.entityName(), inManagedObjectContext: managedObjectContext) as! Item
item.title = title
return item
}
}

您还可以使参数 title 不是可选的,因为托管属性 title 是必需的。或者,您可以将 title 设为可选,但请确保您的模型已更新以反射(reflect)此更改。

关于ios - SWIFT CoreData NSManagedObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24792372/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com