【问题标题】:One to many in Realm for Swift 3.0.2Swift 3.0.2 Realm 中的一对多
【发布时间】:2016-12-28 14:52:35
【问题描述】:

Realm 中的以下 Swift 3.0 对象等效于什么?

常规 Swift

商店类:

import Foundation
class Store{
    var storeName = ""
    var itemList = [Item]()
}

物品类别:

import Foundation
class Item{ 
    var itemName: String = ""
    var price: Double = 0
}

领域

我试过了,但我得到一个错误:

import Foundation
import RealmSwift

class Store:Object{
    dynamic var storeName = ""
    dynamic var itemList = List<Item>() // here I get the error
}

错误:属性不能标记为动态,因为它的类型不能 用Objective-C表示

项目类别:没有错误

import Foundation
import RealmSwift

class Item : Object{

    dynamic var itemName: String = ""
    dynamic var price: Double = 0
}

【问题讨论】:

  • 你不需要将 itemList 声明为动态属性

标签: swift swift3 realm


【解决方案1】:

按照 Realm Swift 文档的 To-Many Relationships 部分的示例,您的类应声明为:

class Store: Object {
    dynamic var storeName = ""
    let itemList = List<Item>()
}

dynamic 修饰符不能用于 List&lt;T&gt; 属性,因为它要求属性的类型在 Objective-C 中是可表示的,而 Swift 的泛型则不是。

【讨论】:

    猜你喜欢
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-25
    • 1970-01-01
    相关资源
    最近更新 更多