次の致命的なエラーが発生します。実行時にLInkingOjbectsを使用してレルムで致命的なエラーが発生する
fatal error: 'try!' expression unexpectedly raised an error: Error Domain=io.realm Code=1 "Schema validation failed due to the following errors: - Property 'GearModel.category' declared as origin of linking objects property 'CategoryRepository.gearList' links to type 'CategoryModel'" UserInfo={NSLocalizedDescription=Schema validation failed due to the following errors: - Property 'GearModel.category' declared as origin of linking objects property 'CategoryRepository.gearList' links to type 'CategoryModel', Error Code=1}:
ここでは、オブジェクトモデル:割り当てられたカテゴリを持つすべてのGearModel項目のリストを取得しようとすると:ギアモデルは、ONEのみカテゴリー
import Foundation
import RealmSwift
class GearModel: Object{
dynamic var gearID = NSUUID().uuidString
dynamic var name = ""
dynamic var manufacturer = ""
dynamic var sortOrder = 0
dynamic var category: CategoryModel?
override class func primaryKey() -> String? {return "gearID"}
}
カテゴリーのモデルに割り当てられています。
import Foundation
import RealmSwift
class CategoryModel: Object{
dynamic var categoryID = NSUUID().uuidString
dynamic var sortOrder = 0
dynamic var name = ""
let gearList = LinkingObjects(fromType: GearModel.self, property: "category")
override class func primaryKey() -> String? {return "categoryID"}
}
カテゴリリポジトリクラス:致命的なエラーがライン上で発生サポートされていないallCategoriesに()LinkingObjects
特性を有するクラスから継承
import Foundation
import RealmSwift
class CategoryRepository: CategoryModel{
class func GetGearItemsForCategory(CategoryID: String) -> Results<GearModel>
{
let realm = try! Realm()
var gearItems = realm.objects(GearModel.self)
let predicate = NSPredicate(format: "categoryID = %@", CategoryID)
gearItems = gearItems.filter(predicate)
return gearItems
}
class func GetCountOfGearItems(CategoryID: String) -> Int
{
let realm = try! Realm()
var gearItems = realm.objects(GearModel.self)
let predicate = NSPredicate(format: "categoryID = %@", CategoryID)
gearItems = gearItems.filter(predicate)
return gearItems.count
}
class func AddCategory(CategoryID: String, Name: String, SortOrder: Int){
let realm = try! Realm()
let category = CategoryModel(name: CategoryID, categoryID: Name, sortOrder: SortOrder)
try! realm.write {
realm.add(category)
}
}
class func allCategories() -> Results<CategoryModel> {
let realm = try! Realm()
return realm.objects(CategoryModel.self).sorted(byProperty: "SortOrder")
}
エラー 'Property' GearModel.categories '... 'は、カテゴリと呼ばれるGearModelに別のプロパティがあることを示しています。これはどこですか? – Michael
良いキャッチ、私は、エラーに問題を解決する1つの試みからエラーでコピーしたが、エラーはコードと一致しませんでした。上記のコードで修正されました。私は関係を1から多少に変更しました。カテゴリがカテゴリに変わった理由しかし、それはどちらもうまくいきませんでした。 –
'CategoryRepository'クラスも共有できますか? – Dmitry