iOS Swift 3将NSArray值存储到领域

Kav*_*gam 3 realm nsarray ios swift3 rlmarray

在我的应用程序中,我们使用Realm Storage在本地存储值。我可以将数组值存储为字符串。但不能将值存储和检索为数组。是否可以将NSArray值存储到Realm对象并将其检索为NSArray。这是我用来存储字符串值的代码:

class PracticeView: Object
{
    dynamic var PracticeArray = ""
} 
Run Code Online (Sandbox Code Playgroud)

和用法:

let realm:Realm = try! Realm()
let PracticeDetails = PracticeView()
PracticeDetails.PracticeArray = "Test String Values"
try! realm.write
{
   realm.add(PracticeDetails)
}
print("Values In Realm Object: \(PracticeDetails.PracticeArray)")

//Result Will Be
Values In Realm Object: Test String Values
Run Code Online (Sandbox Code Playgroud)

TiM*_*TiM 5

不,Realm无法将本机数组(无论是Objective-C NSArray对象还是Swift数组)存储为Object模型类的属性。

在Realm Swift中,有一个名为的对象List,可让您将Realm Object实例的数组存储为子对象。但是,它们仍然不能是字符串,因此有必要将字符串封装在另一个Realm Object子类中。

class Practice: Object {
   dynamic var practice = ""
}

class PracticeView: Object {
   let practiceList = List<Practice>()
}

let newPracticeView = PracticeView()

let newPractice = Practice()
newPractice.practice = "Test String Value"
newPracticeView.practiceList.append(newPractice)

let realm = try! Realm()
try! realm.write {
    realm.add(newPracticeView)
}
Run Code Online (Sandbox Code Playgroud)

有关更多信息,我建议查看Realm Swift文档的“多对多关系”部分。:)