ios - Realm swift : Invalid value for property on xCode 9

标签 ios swift realm xcode9

我在更新 Podfile 上的 Pod 版本时遇到错误。我在 xCode 9 上使用最新版本的 RealmSwift 框架。这是我的模型:

import Foundation
import RealmSwift
import ObjectMapper

class Salesman: Object,Mappable,DataElementDelegate, ObjectDelegate {

   //MARK: - properties
   public dynamic var id: Int = 0
   public dynamic var name: String = ""
   public dynamic var amount: Int = 0
   public dynamic var updated_at_timestamp: Int = 0

   //MARK: - Init
   required convenience init?(map: Map) {
       self.init()
   }

   //MARK: - Mapping
   func mapping(map: Map) {
       id<-map["id"]
       name<-map["name"]
       amount<-map["amount"]
       updated_at_timestamp<-map["updated_at_timestamp"]
   }

   //MARK: - Realm methods
   override static func primaryKey()->String?{
       return "id"
   }

   //MARK: - Methods
   public func getID()->Int{
       return self.id
   }

   //MARK: - Data delegate

   func getAmount() -> String {
       return "\(self.amount)"
   }

   func getName() -> String {
       return self.name
   }

   func getLastUpdate() -> Int {
       return self.updated_at_timestamp
   }

}

现在,当我尝试在我的 Realm 中插入值时,我遇到了崩溃 “RLMException”,原因:“属性‘Salesman.amount’的无效值‘1000’”

我写了那个插入代码:

//MARK: - Mocks Salesman
public func mocksSalesman()->[Salesman]{

    var array: [Salesman] = []

    let sale1 = Salesman()
    sale1.id = 1
    sale1.name = "Raul"
    sale1.amount = 1000

    let sale2 = Salesman()
    sale2.id = 2
    sale2.name = "Tomas"
    sale2.amount = 500

    let sale3 = Salesman()
    sale3.id = 3
    sale3.name = "Luciano"
    sale3.amount = 700

    array.append(sale1)
    array.append(sale2)
    array.append(sale3)

    return array

}

public func insert(){
    let list = self.mocksSalesman()
    let realm = try! Realm()
    for item in list{
        try! realm.write {
            realm.add(item, update: true)
        }
    }
}

我试图将 3 名销售员插入我的 Realm 的数据库,但我遇到了这个问题。

会发生什么?

问候

最佳答案

好的,我有答案了。那只是把这段代码:

func getAmount() -> Int {
   return self.amount
}

代替:

func getAmount() -> String {
   return "\(self.amount)"
}

关于ios - Realm swift : Invalid value for property on xCode 9,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46475523/

相关文章:

ios - GMSAutocompleteViewController iOS,如何更改搜索栏中的文本颜色

ios - 在 viewcontroller 之上放置一个 Tabbar Controller

ios - 反向推送和弹出 segue 动画?

ios - Swift - 错误处理后无法在 Firebase 中创建用户

xcode - Swift2.2 中的 UITextView 显示像素化文本,如何恢复丢失的分辨率?

ios - 在 Swift 应用程序中安装 Realm

iphone - NSTimer 在我第一次告诉它停止时停止,然后拒绝停止

java - 人们可以轻松访问 Android Realm 文件吗?

ios - 使用 Realm 我如何更新数据,它不应该创建新对象只更新对象

swift - 同一应用程序的不同 APN 设备 token ID