我正在尝试创建一个将数据保存到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进行编程是相当新的,似乎无法找到解决我问题的答案,如果你知道我做错了什么或我能做些什么来修复它,请指出我正确的方向非常感谢你的帮助。
如果您需要查看我的更多代码,请询问...
答案 0 :(得分:1)
这里你可能想要的是在没有先创建buf2
的情况下构建finally
。在这种情况下,你应该有一个初始化器:
CloudKitTask
然后你可以使用它:
CKRecord