2017-03-23 30 views
1

我在iOS Swift项目上使用SharkORM,并遇到特定对象的问题。我在项目中有其他的对象,但是这个。iOS Swift - SharkORM不会提交

我的班级是这样的:

import Foundation 
import SharkORM 

class Exam: SRKObject { 

    dynamic var serverId: NSNumber? 
    dynamic var type: String? 
    dynamic var when: String? 
    dynamic var file: String? 
    dynamic var filename: String? 
    dynamic var url: String? 

    func toJson() -> [String:Any?] { 
     return [ 
      "name" : type, 
      "date" : when, 
      "serverId" : serverId, 
      "file" : file, 
      "filename" : filename, 
      "url" : url, 
      "id" : id 
     ] 
    } 

    static func fromJson(_ json: [String:Any?]) -> Exam { 
     let exam = Exam() 
     exam.id = json["id"] as? NSNumber ?? NSNumber(value: 0) 
     exam.type = json["name"] as? String ?? "" 
     exam.file = json["file"] as? String ?? "" 
     exam.filename = json["filename"] as? String ?? "" 
     exam.url = json["url"] as? String ?? "" 
     exam.serverId = json["serverId"] as? NSNumber ?? NSNumber(value: 0) 
     exam.when = json["date"] as? String ?? "" 
     return exam 
    } 

} 

我添加到需要保存一个数组对象之后用户按下保存按钮,该应用程序开始犯了。

// save exams 
    for exam in self.examsToSave { 
     if !exam.commit() { 
      print("Error commiting exam.") 
     } 
    } 
    if let rs = Exam.query().fetch() { 
     print("exams: \(rs.count)") 
    } 

commit方法返回true,并且在完成提交并且结果为零后立即添加一个打印。

有什么想法?

+0

'当它是**关键字** –

回答

1

我在发布后发现问题。在我的文本中,我的变量“when”被着色为一个关键字。我刚刚将名称更改为“whenDate”并开始提交。奇怪的是它没有显示任何错误或崩溃。无论如何,在SRKObject中不允许使用名为“when”的变量。