gpt4 book ai didi

ios - Realm 错误(线程 1 : Fatal error: init(realm:schema:) has not been implemented)

转载 作者:行者123 更新时间:2023-11-28 13:49:05 30 4
gpt4 key购买 nike

存储数据时出现错误线程 1: fatal error :init(realm:schema:) 尚未实现在我的按钮中,我想存储用户选择的数据,同时我想显示它但是当我点击按钮来存储我的数据时,我得到了错误我确定我的数据中没有任何 nil我希望我对问题的解释是清楚的。

我的代码:型号:

import Foundation
import UIKit
import RealmSwift
import Realm
class Foods : Object {
@objc dynamic var name = ""
@objc dynamic var price = 0.0
@objc dynamic var descriptionn = ""
@objc dynamic var time = ""
@objc dynamic var rating = 0.0
var image:UIImage?
@objc dynamic var count = 0.0

init(name : String,price : Double , count:Double ,description : String,time : String,rating : Double,image : UIImage) {
self.name = name
self.price = price
self.descriptionn = description
self.time = time
self.rating = rating
self.image = image
self.count = count
super.init()
}

init(name : String,price : Double) {
self.name = name
self.price = price

super.init()
}

required init() {
name = ""
price = 0.0
super.init()
}


required init(realm: RLMRealm, schema: RLMObjectSchema) {
fatalError("init(realm:schema:) has not been implemented")
}

required init(value: Any, schema: RLMSchema) {
fatalError("init(value:schema:) has not been implemented")
}



}

我的 UITableViewCell :

import UIKit
import HCSStarRatingView
import GMStepper
import RealmSwift

class FoodsSecoundTableViewCell: UITableViewCell {
@IBOutlet weak var foodTitle: UILabel!
@IBOutlet weak var foodPrice: UILabel!
@IBOutlet weak var foodRating: HCSStarRatingView!
@IBOutlet weak var foodImage: UIImageView!
@IBOutlet weak var steperCount: GMStepper!
@IBOutlet weak var btnSend: UIButton!
var result : Double?
let realm = try! Realm()

weak var delegate: FoodsSecoundTableViewCellDelegate?

override func awakeFromNib() {
super.awakeFromNib()
btnSend.layer.cornerRadius = 23
btnSend.layer.borderColor = UIColor.white.cgColor

if steperCount.value == 0 {
btnSend.isEnabled = false

} else if steperCount.value > 0{
btnSend.isEnabled = true

}


}


override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
}
@IBAction func myStepper(_ sender: GMStepper) {

delegate?.stepper(sender, at: sender.tag, didChangeValueTo: sender.value)


}


@IBAction func btnSendIt(_ sender: Any) {

print(foodPrice.text)
let myFood = Foods(name: foodTitle.text!, price: Double(foodPrice.text!)!)
try! realm.write {
realm.add(myFood)
}

let result = realm.objects(Foods.self)

for food in result {
print(food.name)
print(food.price)


}

}

}

最佳答案

您不需要实现上面所有的 init() 函数。相反,试试这个:-

  • 删除必需的 init 函数,因为我假设您正在添加这些函数以使其编译。通常不需要它们。
  • 对于您要实现的初始化程序(我假设是上面的前两个),在 init 之前添加关键字 convenience
  • 在您自己的初始化程序的开头使用 self.init()

所以你的整个初始化代码应该如下所示。

convenience init(name : String,price : Double , count:Double ,description : String,time : String,rating : Double,image : UIImage) {
self.init()
self.name = name
self.price = price
self.descriptionn = description
self.time = time
self.rating = rating
self.image = image
self.count = count
}

convenience init(name : String,price : Double) {
self.init()
self.name = name
self.price = price
}

关于ios - Realm 错误(线程 1 : Fatal error: init(realm:schema:) has not been implemented),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54992667/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com