在我的App中,我将数据存储在Realm数据库中,并在UITableView中显示数据。我在桌面添加了很酷的功能 - 现在我可以通过拖放来交换单元格。但是现在我必须在DataBase类中添加方法来交换相关的对象。
我发现Realm是无序的,所以我想再增加一个属性:index。但是因此我应该提出关于在数据模型中索引项目的所有逻辑(在索引处插入,在索引处删除等),在我看来错误的方法。
有趣的是有解决这种问题的常用方法吗?
答案 0 :(得分:2)
即使您可以为对象添加索引,我们通常也建议在架构中添加另一个对象类,该对象类带有您要订购的对象列表。列表/多对多关系在Realm中默认排序,为您提供方便的界面来移动对象并以其他各种方式修改顺序。
答案 1 :(得分:1)
这是使用Realm数据库的List类的代码演示。这就是我在项目中意识到的。我简化它是为了方便。非常感谢@marius为我提供如此优雅的解决方案。
class Item: Object {
number: Int
name: String
convenience init(number: Int, name: String) {
self.number = number
self.name = name
}
class ItemsList: Object {
var list = List<Item>()
}
class DataBase {
static let realm = try! Realm()
static var itemsList = ItemsList()
static var numberOfItems: Int {
return self.itemsList.list.count
}
class func addItemToDataBase(number: Int, name: String) {
let item = Item(number: number, name: String)
try! realm.write({
realm.add(item)
print("Success!")
})
itemsList.list.append(item)
}
}