我目前正在开发一个应用程序,我想检查NSDictionary中是否存在特定对象。我尝试过这段代码,但似乎没有用。任何帮助将不胜感激!
for (int i=0; sizeofarray; i++) {
if ([[self.chat valueForKeyPath:@"text"] count] > 0)
{
NSDictionary* chatmessage=[self.chat objectAtIndex:i];
if ([chatmessage[@"text"] isEqualToString:@"Guest787" ]) {
NSLog(@"this happened");
}}
}
P.S sizeofarray是数组的长度,chat是存储在字典中的数组。
答案 0 :(得分:2)
对于此任务 - 在数组中查找具有特定键/值对的字典 - 谓词是合适的解决方案。
NSString *value = @"Guest787";
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"text == %@", value];
NSArray *result = [self.chat filteredArrayUsingPredicate:predicate];
BOOL valueExists = result.count > 0;
NSLog(@"%d", valueExists);
或使用键值编码(KVC)
BOOL valueExists = [[self.chat valueForKey:@"text"] containsObject:@"Guest787"];
答案 1 :(得分:0)
也许这个?
if ([self.chat containsObject:@"Guest787"]) {
NSLog(@"this happened");
}
OR
for (NSString *message in self.chat) {
if ([message isEqualToString:@"Guest787"]) {
NSLog(@"this happened");
}
}