有没有办法将 RLMArray 与 NSString 进行比较?
我想将 textfield.text 与RLMArray的存储的用户名进行比较。
感谢您的帮助! :)
更新
-(void)checkUser {
RLMArray<User *> *userObjects;
RLMResults *matches = [userObjects objectsWhere:@"name CONTAINS %@", _userName];
if (matches) {
NSLog(@"YES");
}
else {
NSLog(@"NO");
}
}
答案 0 :(得分:1)
如果您有RLMArray
个User
个对象(因为NSString
自己无法直接保存到RLMArray
),而您希望查看其中任何一个是否与NSString
的{{1}}值相匹配,您应该可以使用UITextField
查询轻松完成此操作:
NSPredicate
有关@interface User
@property NSString *username;
@end
NSString *textFieldString = textfield.text;
RLMArray<User *> *userObjects = .../
RLMResults *matches = [userObjects objectsWhere:@"username CONTAINS '%@'", textFieldString];
过滤的详细信息,Realm还会维护您可以使用的语法列表:https://realm.io/news/nspredicate-cheatsheet/
答案 1 :(得分:0)
RLMArray是Realm中用于定义多对多关系的容器类型。
与NSArray不同,RLMArrays包含由objectClassName
属性指定的单一类型。
为了进行比较,您必须拥有RLMArray中的字符串对象。有很多方法可以做到这一点。例如,如果要将数组的第一个对象与textfield.text
进行比较:
if ([[YOURARRAY firstObject] isEqualtoString:textfield.text]){
//do something
}
您还可以比较数组中的第二个对象,执行以下操作:
if ([[YOURARRAY objectAtIndex:1] isEqualtoString:textfield.text]){
//do something
}
这是领域的文档:
https://realm.io/docs/objc/latest/api/index.html