在初始化

时间:2015-09-08 21:41:13

标签: ios swift object ios8

我正在尝试创建一个将数据保存到CloudKit的应用程序,我已将其全部排序但在尝试初始化新对象时,我在初始化错误时会得到额外的参数。

错误代码:

func submitTask(){
    var task: Task
    task = CloudKitTask(task: Task){
        task.shortDescription = self.txtShortDesc.text!
        task.type = self.txtType.text!
        task.reminder = self.txtReminder.text!
        task.priority = self.txtPriority.text!
        task.dueTime = self.txtDueTime.text!
        task.dueDate = self.txtDueDate.text!
        task.completed = "False"
        task.className = self.txtClass.text!
        task.additionalDetails = self.txtDetails.text
    }
    print(task)
}

错误:在task = CloudK ... line

的调用中额外参数'task'

任务类:

protocol Task {
var id: String? { get }
var shortDescription: String { get set }
var className: String { get set }
var type: String { get set }
var dueDate: String { get set }
var dueTime: String { get set }
var priority: String { get set }
var reminder: String { get set }
var completed: String { get set }
var additionalDetails: String { get set }
}

class CloudKitTask: Task {
let record: CKRecord

init(record: CKRecord){
    self.record = record
}

init(task: Task){
    record = CKRecord(recordType: "Task")
    shortDescription = task.shortDescription
    className = task.className
    type = task.type
    dueDate = task.dueDate
    dueTime = task.dueTime
    priority = task.priority
    reminder = task.reminder
    completed = task.completed
    additionalDetails = task.additionalDetails

}

var className: String {
    get {
        return record.objectForKey("ClassName") as! String
    }
    set {
        record.setObject(newValue, forKey: "ClassName")
    }
}

var completed: String {
    get {
        return record.objectForKey("Completed") as! String
    }
    set {
        record.setObject(newValue, forKey: "Completed")
    }
}

var dueDate: String {
    get {
        return record.objectForKey("DueDate") as! String
    }
    set {
        record.setObject(newValue, forKey: "DueDate")
    }
}

var dueTime: String {
    get {
        return record.objectForKey("DueTime") as! String
    }
    set {
        record.setObject(newValue, forKey: "DueTime")
    }
}

var priority: String {
    get {
        return record.objectForKey("Priority") as! String
    }
    set {
        record.setObject(newValue, forKey: "Priority")
    }
}

var reminder: String {
    get {
        return record.objectForKey("Reminder") as! String
    }
    set {
        record.setObject(newValue, forKey: "Reminder")
    }
}

var shortDescription: String {
    get {
        return record.objectForKey("ShortDescription") as! String
    }
    set {
        record.setObject(newValue, forKey: "ShortDescription")
    }
}

var type: String {
    get {
        return record.objectForKey("Type") as! String
    }
    set {
        record.setObject(newValue, forKey: "Type")
    }
}

var additionalDetails: String {
    get {
        return record.objectForKey("AdditionalDetails") as! String
    }
    set {
        record.setObject(newValue, forKey: "AdditionalDetails")
    }
}

var id: String? {
    return record.recordID.recordName
}

var createdAt: NSDate {
    return record.creationDate!
}

var lastModifiedAt: NSDate {
    return record.modificationDate!
}
}

我对使用Swift进行编程是相当新的,似乎无法找到解决我问题的答案,如果你知道我做错了什么或我能做些什么来修复它,请指出我正确的方向非常感谢你的帮助。

如果您需要查看我的更多代码,请询问...

1 个答案:

答案 0 :(得分:1)

这里你可能想要的是在没有先创建buf2的情况下构建finally。在这种情况下,你应该有一个初始化器:

CloudKitTask

然后你可以使用它:

CKRecord