swift - Realm :如何查询存储在数组中的属性?

标签 swift realm

所以我有一个包含 memberEmails 的数组,现在我想查询没有存储在这个数组中的用户:

var memberEmails: [String] = // ... is not empty

self.registeredUsers = self.realm.objects(AppUser).filter("email != '\(self.user.email!)' && '\(memberEmails)' !CONTAINS email")

抛出的错误信息:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unable to parse the format string "email != 'iphone5s@mail.com' && '["iphone5s@mail.com"]' !CONTAINS email"'

最佳答案

你不应该使用 Swift 的字符串插值来进行查询,而应该使用 NSPredicate 的 %@ 格式化程序:

var memberEmails: [String] = // ... is not empty

self.registeredUsers = self.realm.objects(AppUser.self).filter("email != %@ && NOT (email IN %@)", self.user.email, memberEmails)

关于swift - Realm :如何查询存储在数组中的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39097388/

相关文章:

ios - NSFetchedResultsController 加上 NSBatchUpdateRequest 等于 NSMergeConflict。我做错了什么?

ios - iOS-选择模型类别

swift - ObjectMapper 不序列化新字段

java - Realm 无法从 Json 创建嵌套对象

swift - 惰性可选属性始终为零?

swift - 如何以编程方式选择 UICollectionView 的所有单元格

iphone - Swift 中的耳机插件/输出检测

ios - 如何使用 Realm 确定一对一关系的反向关系?

reactjs - 如何使用 Jest 在 React Native 中正确测试我的 Realm.io 实现?

Android Realm ChangeListener 未被触发