Error[8]: Undefined offset: 4, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

概述我在 Swift2中编写了一个(Mac)应用程序,它应该搜索具有特定主题的教师的Realm数据库.领域中教师对象的定义如下所示: class Teacher: Object { var subjects = List<Subject>()} 这个类非常复杂所以我删除了一些行… 这是应该过滤具有特定主题的教师数据库并仅返回教师姓名的函数(如String Array:[String]): 我在 Swift2中编写了一个(Mac)应用程序,它应该搜索具有特定主题的教师的Realm数据库.领域中教师对象的定义如下所示:

class Teacher: Object {     var subjects = List<Subject>()}

这个类非常复杂所以我删除了一些行…

这是应该过滤具有特定主题的教师数据库并仅返回教师姓名的函数(如String Array:[String]):

func getAllTeachernamesForSubject(subject: String) -> [String] {    // Open Database    let realm = openRealmDatabase()    // Or open it this way:    // RLMRealm.setDefaultRealmPath("/Users/name/Data.realm")    // var realm: Realm!    // realm = try! Realm()    // filter the Database with Predicate    let objects = realm.objects(Teacher).filter("!!! Need Help !!!",subject)    // How can I filter the Database? I want to get all the Teachers for that subject    // Make an Array of Objects    let objectsArray = objects.toArray(Teacher) as [Teacher]    // Return    return ???}// This is the toArray extension.// You may need it to use the snippet aboveextension Results {    func toArray<T>(ofType: T.Type) -> [T] {        var array = [T]()        for var i = 0; i < count; i++ {            if let result = self[i] as? T {                array.append(result)            }        }        return array    }}

所以问题是我不知道如何过滤数据库.

有谁可以帮助我吗?

解决方法 要过滤与特定值有关系的对象,或者在您的情况下,具有特定名称的主题的教师,您可以将此谓词用于不区分大小写的搜索:

nspredicate(format: "ANY subjects.name ==[c] %@",subjectname)

并将其插入过滤功能.由于您只想返回教师姓名,因此您不需要按照建议创建任何扩展名,而是使用本机swift映射方法:

func getAllTeachernamesForSubject(subjectname: String) -> [String] {    let realm = openRealmDatabase    let predicate = nspredicate(format: "ANY subjects.name ==[c] %@",subjectname)    return realm.objects(Teacher).filter(predicate).map { [+++].name }}

作为参考,您可以找到一个很棒的cheatsheet on Realm’s website,它描述了支持的谓词语法的完整列表.

总结

以上是内存溢出为你收集整理的swift2 – 在Swift 2中使用谓词搜索数据库全部内容,希望文章能够帮你解决swift2 – 在Swift 2中使用谓词搜索数据库所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

)
File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 166, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
swift2 – 在Swift 2中使用谓词搜索数据库_app_内存溢出

swift2 – 在Swift 2中使用谓词搜索数据库

swift2 – 在Swift 2中使用谓词搜索数据库,第1张

概述我在 Swift2中编写了一个(Mac)应用程序,它应该搜索具有特定主题的教师的Realm数据库.领域中教师对象的定义如下所示: class Teacher: Object { var subjects = List<Subject>()} 这个类非常复杂所以我删除了一些行… 这是应该过滤具有特定主题的教师数据库并仅返回教师姓名的函数(如String Array:[String]): 我在 Swift2中编写了一个(Mac)应用程序,它应该搜索具有特定主题的教师的Realm数据库.领域中教师对象的定义如下所示:

class Teacher: Object {     var subjects = List<Subject>()}

这个类非常复杂所以我删除了一些行…

这是应该过滤具有特定主题的教师数据库并仅返回教师姓名的函数(如String Array:[String]):

func getAllTeachernamesForSubject(subject: String) -> [String] {    // Open Database    let realm = openRealmDatabase()    // Or open it this way:    // RLMRealm.setDefaultRealmPath("/Users/name/Data.realm")    // var realm: Realm!    // realm = try! Realm()    // filter the Database with Predicate    let objects = realm.objects(Teacher).filter("!!! Need Help !!!",subject)    // How can I filter the Database? I want to get all the Teachers for that subject    // Make an Array of Objects    let objectsArray = objects.toArray(Teacher) as [Teacher]    // Return    return ???}// This is the toArray extension.// You may need it to use the snippet aboveextension Results {    func toArray<T>(ofType: T.Type) -> [T] {        var array = [T]()        for var i = 0; i < count; i++ {            if let result = self[i] as? T {                array.append(result)            }        }        return array    }}

所以问题是我不知道如何过滤数据库.

有谁可以帮助我吗?

解决方法 要过滤与特定值有关系的对象,或者在您的情况下,具有特定名称的主题的教师,您可以将此谓词用于不区分大小写的搜索:

nspredicate(format: "ANY subjects.name ==[c] %@",subjectname)

并将其插入过滤功能.由于您只想返回教师姓名,因此您不需要按照建议创建任何扩展名,而是使用本机swift映射方法:

func getAllTeachernamesForSubject(subjectname: String) -> [String] {    let realm = openRealmDatabase    let predicate = nspredicate(format: "ANY subjects.name ==[c] %@",subjectname)    return realm.objects(Teacher).filter(predicate).map { .name }}

作为参考,您可以找到一个很棒的cheatsheet on Realm’s website,它描述了支持的谓词语法的完整列表.

总结

以上是内存溢出为你收集整理的swift2 – 在Swift 2中使用谓词搜索数据库全部内容,希望文章能够帮你解决swift2 – 在Swift 2中使用谓词搜索数据库所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1008599.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存