gpt4 book ai didi

swift3 - 如何使用字典将字符串数组存储到 Realm 实例中?

转载 作者:行者123 更新时间:2023-12-02 00:48:38 25 4
gpt4 key购买 nike

我是 Realm 新手,遇到了这个问题。

我有一个像这样的字典

{
firstName : "Mohshin"
lastName : "Shah"
nickNames : ["John","2","3","4"]
}

和一个像这样的

class User: Object {
var firstName: String?
var lastName: String?
var nickNames: [String]?
}

当我尝试插入值时,它抛出如下异常

属性“nickNames”被声明为“NSArray”,这不是受支持的 RLMObject 属性类型。所有属性都必须是基元,NSStringNSDateNSDataNSNumberRLMArrayRLMLinkingObjectsRLMObject 的子类。
请参阅https://realm.io/docs/objc/latest/api/Classes/RLMObject.html了解更多信息。
我也尝试过

var nickNames =  NSArray()

var nickNames = NSMutableArray()

但不起作用。我需要制作 Nickname 模型类并创建一个属性,如下所示还是有办法做到这一点?

var nickNames =  List<Nickname>()

最佳答案

更新:

您现在可以直接在 RLMArray 或列表中存储基本类型或其可为 null 的对应项(更具体地说: bool 值、整数和 float 类型、字符串、日期和数据)。如果您想定义此类原始值的列表,您不再需要定义麻烦的单字段包装对象。相反,您可以只存储原始值本身。

原始值列表的工作方式与包含对象的列表的工作方式非常相似,如下面针对 Swift 的示例所示:

class Student : Object {
@objc dynamic var name: String = ""
let testScores = List<Int>()
}

// Retrieve a student.
let realm = try! Realm()
let bob = realm.objects(Student.self).filter("name = 'Bob'").first!

// Give him a few test scores, and then print his average score.
try! realm.write {
bob.testScores.removeAll()
bob.testScores.append(94)
bob.testScores.append(89)
bob.testScores.append(96)
}
print("\(bob.testScores.average()!)") // 93.0

Realm 支持的所有其他语言也支持原始类型列表。

关于swift3 - 如何使用字典将字符串数组存储到 Realm 实例中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42361281/

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