我有一个Realm对象:
class TransactionDB: Object {
dynamic var transactionID : Int = -1
dynamic var registrationPlate : String = ""
dynamic var locationID : Int = 0
dynamic var time : String = ""
dynamic var subscription : String = ""
dynamic var startTime : NSDate = NSDate()
dynamic var endTime : NSDate = NSDate()
dynamic var status : Int = -2
dynamic var requestType : Int = -1
var extensions : List<ExtensionDB> = List<ExtensionDB>()
dynamic var price : Double = 0
dynamic var currency : String = ""
private dynamic var test : Int = 10
override static func primaryKey() -> String? {
return "transactionID"
}
class var sharedInstance : TransactionDB {
struct Singleton {
static let instance = TransactionDB()
}
return Singleton.instance
}
static func saveOrUpdate {
// ......
}和一个单独的版本。因此,当屏幕发生变化时,我在许多控制器上有一个对象。几天前,我使用了一些更老的目标-C版本的领域,但现在我改变了Swift版本1.0.2,我试图解决所有的问题。
所以,当我试着把这样的东西叫做:
TransactionDB.sharedInstance.time = ""我有个例外。但是,在我做了以下操作之后,它就可以工作了:
let realm = try! Realm()
try! realm.write {
TransactionDB.sharedInstance.time = ""
}那么,我是创造了一个人的错误,还是这就是必须要做的方式?因为,对我来说,当我想要更改某个属性值时,我总是不得不使用try块,这有点烦人。
发布于 2016-07-28 07:54:40
https://stackoverflow.com/questions/38628700
复制相似问题