【发布时间】:2015-04-16 12:39:23
【问题描述】:
我正在尝试使用 Core Data 来保存我的一些应用程序数据。我有以下课程。基本上我想存储每个作业的属性,并在以后使用它。
以下是我目前在我的应用程序中使用的类。
class Job {
var name:String?
var count = 1
var id:String
var startDate:NSDate?
var finishDate:NSDate?
var expected:NSDate?
var detail:Array<JobDetail> = []
var isFinished:Bool?
var sender:String?
var receiver:String?
init(name:String?, id:String) {
self.name = name
self.id = id
self.isFinished = false
self.startDate = NSDate()
}
func addDetail (message:String?, date:NSDate?, location:String?, status: DetailStatus) {
detail.append(JobDetail(message: message, date: date, location: location, status: status))
if status == DetailStatus.OK {
self.isFinished = true
self.finishDate = date
}
}
}
enum DetailStatus {
case OK
case Error
case Exception
case Unknown
}
class JobDetail {
var message:String?
var date:NSDate?
var location:String?
var status:DetailStatus
init(message:String?, date:NSDate?, location:String?, status: DetailStatus) {
self.message = message
self.date = date
self.location = location
self.status = status
}
}
我在创建数据模型后使用 Xcode 创建的 NSManagedObject 子类。
class Job: NSManagedObject {
@NSManaged var name: String
@NSManaged var count: NSNumber
@NSManaged var id: String
@NSManaged var startDate: NSDate
@NSManaged var finishDate: NSDate
@NSManaged var expected: NSDate
@NSManaged var isFinished: NSNumber
@NSManaged var sender: String
@NSManaged var receiver: String
@NSManaged var details: NSSet
}
class JobDetail: NSManagedObject {
@NSManaged var message: String
@NSManaged var date: NSDate
@NSManaged var location: String
@NSManaged var status: NSNumber
@NSManaged var parent: Job
}
这是我的数据模型的截图。
基本上我想在我的应用程序中对作业进行 CRUD,以便我可以在我的表格视图中显示它们。我已经设置好了所有东西,但是因为我无法设置 Core Data,所以我没有持久性。如果您能帮助我设置 Core Data,我将不胜感激。
【问题讨论】:
-
同意Keyur,你需要做一个基础教程。了解如何创建和保存对象。
-
我可以创建和保存单个实体。但正如您从我的示例中看到的那样,我有两个实体。 AFAIK 这是模拟数组的唯一方法。链接的教程仅讨论单个实体。同样对于我的示例订单或工作细节很重要。