我正在尝试使用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 Job,以便我可以在我的tableview中显示它们。我有一切设置,但因为我无法设置核心数据我没有持久性。如果您能帮助我设置Core Data,我将不胜感激。
答案 0 :(得分:0)
参考这个。可能对你有用......
http://www.raywenderlich.com/85578/first-core-data-app-using-swift
答案 1 :(得分:0)
从截图中可以看出,您的设置是正确的。链接详细信息与这样的工作。
detail1.parent = job
detail2.parent = job
context.save(nil)
获取此类工作的所有详细信息
job.details
这是无序的,但您可以使用sortedArrayUsingDescriptors
对其进行排序。
let sortedDetails = job.details.sortedArrayUsingDescriptors(
[NSSortDescriptor(key:"date" ascending: false)])