我有一个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 {
// ......
}
和它的单例版本。因此,当屏幕改变时,我在许多控制器上有一个对象。 几天前我使用了一些较旧的Objective-C版本的Realm,但现在我改为仅使用Swift版本的1.0.2而且我正在尝试解决所有问题。
现在,当我尝试调用诸如此类的东西时,它就变成了一部分。
TransactionDB.sharedInstance.time = ""
我得到一个例外。但是,在我执行以下操作后,它可以工作:
let realm = try! Realm()
try! realm.write {
TransactionDB.sharedInstance.time = ""
}
所以我创建单身人士是错的还是这就是必须要做的事情?因为,对我来说,当我想要更改某个属性的值时,我总是需要使用try
块,这有点令人讨厌。
答案 0 :(得分:1)