RLMObjects
的任何屬性必須是dynamic
。所以amount: NSDecimalNumber
屬性應被定義爲dynamic
象下面這樣:
private dynamic var _amount: String = ""
public dynamic var amount: NSDecimalNumber {
get { return NSDecimalNumber(string: _amount) }
set { _amount = newValue.stringValue }
}
和計算機性能不應該被堅持。 (當然,amount
屬性爲NSDecimalNumber
,所以它不能被境界堅持。如果amount
屬性將被保留,出現異常)
爲了防止這種情況,你可以重寫ignoredProperties()
方法並返回"amount"
爲字符串數組。
override public class func ignoredProperties() -> [AnyObject]! {
return ["amount"]
}
基於以上,完整的類定義如下:
public class Product: RLMObject {
private dynamic var _amount: String = ""
public dynamic var amount: NSDecimalNumber {
get { return NSDecimalNumber(string: _amount) }
set { _amount = newValue.stringValue }
}
public override class func ignoredProperties() -> [String]! {
return ["amount"]
}
}