Я пытаюсь найти, есть ли какой-либо объект в изменяемом массиве, который совпадает с переданным мной объектом. Пожалуйста, смотрите ниже.Как использовать containsObject в NSMutableArray
Название происходит от контроллера табличного представления, поэтому строка, которая прослушивается, сохраняется в имени и передается этой функции. Я пытаюсь проверить, совпадает ли имя в контроллере представления таблицы с именем, поступающим из базы данных. Здесь имя относится к firstName и lastName. Вот почему я добавляю эти строки.
Пожалуйста, помогите мне .. Я смущен, как это сделать .. Если у вас есть лучший подход, пожалуйста, дайте мне знать .. спасибо много .. Я думаю, что он пытается сравнить места памяти объекта (не уверен, хотя), но есть ли способ, так что он сравнивает именно имя, которое я передаю ..
-(NSMutableDictionary *)getSearchContacts:(NSString *)name
{
//---retrieve rows---
NSString *qsql =[[NSString stringWithFormat:@"SELECT * FROM CONTACTS WHERE last_name LIKE '%@",[name substringToIndex:1]]stringByAppendingString:@"%' GROUP BY sugar_id ORDER BY last_name"];
NSString *sugar_id;
NSString *first_name;
NSString *last_name;
NSMutableArray *searchContacts=[[NSMutableArray alloc] init];
sqlite3_stmt *statement;
if (searchContactName == nil) {
searchContactName=[[NSString alloc]init];
}
if (sqlite3_prepare_v2(db, [qsql UTF8String], -1, &statement, nil) == SQLITE_OK) {
while (sqlite3_step(statement) == SQLITE_ROW) {
sugar_id= [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 1)];
first_name = [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 3)];
last_name = [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 4)];
if ([first_name isEqualToString:@"(null)"]) {
last_name=[last_name stringByReplacingCharactersInRange:NSMakeRange(0,1) withString:[[last_name substringToIndex:1] uppercaseString]];
searchContactName=[searchContactName stringByAppendingString:last_name];
searchContactName=[searchContactName stringByAppendingString:@":"];
searchContactName=[searchContactName stringByAppendingString:@","];
}
else {
first_name=[first_name stringByReplacingCharactersInRange:NSMakeRange(0,1) withString:[[first_name substringToIndex:1] uppercaseString]];
last_name=[last_name stringByReplacingCharactersInRange:NSMakeRange(0,1) withString:[[last_name substringToIndex:1] uppercaseString]];
searchContactName=[searchContactName stringByAppendingString:last_name];
searchContactName=[searchContactName stringByAppendingString:@":"];
searchContactName=[searchContactName stringByAppendingString:first_name];
searchContactName=[searchContactName stringByAppendingString:@","];
}
[searchContacts addObject:searchContactName];
//first_name = nil;
//last_name = nil;
if ([searchContacts containsObject:name]==YES) {
searchSugarId=[[NSMutableDictionary alloc]initWithObjectsAndKeys:sugar_id,searchContactName,nil];
}
}
//---deletes the compiled statement from memory---
sqlite3_finalize(statement);
}
return searchSugarId;
}
EDIT
Имя: Blackmon: Валентин
Поиск Контактное лицо Barefield: Collin, Baylis: Efren, Beatty: Peter, Beckwith: Lynn, Benny: Wilma, Bermudes: Lenore, Berryhill: Gerard, Biles: Jodi, Blackmon: Valentin, Blassingame: Rose, Blume: Renae, Бонет: Клод, Бостик: Valerie, Bouldin: Renaldo, Bracewell: Брендан, Брэдфорд: Kris, Brathwaite: Билл, Бруггер: Исмаэль, Brumit: Джули, Buchholtz: Mathew, Бункер: Кристал, Burch: Флойд, Бурман: Санг, Butcher: Принц, Butcher: Рори,
Поиск Контакты Barefield: Collin, Baylis: Efren, Битти: Питер, Беквит Линн, Бенни: Вильма, Бермудес: Ленор, Berryhill: Gerard, желчи: Джоди, Blackmon: Валентин, Blassingame: Роза, Блюм: Рен, Бонет: Клод, Бостики: Valerie, Bouldin: Renaldo, Bracewell: Брендан, Брэдфорд: Kris, Brathwaite: Билл, Бруггер: Исмаэль, Brumit: Джул, Buchholtz: М thew, Bunker: Chrystal, Burch: Floyd, Burman: Sang, Butcher: Prince, Butcher: Rory,
Вы пробовали войти 'searchContactName',' 'name' и searchContacts' проверить предыдущий код ? –
Спасибо за ответ..Когда я попытался распечатать содержимое на консоли .. имя, которое я получаю, правильно. Пожалуйста, проверьте значения. Я отредактировал приведенный выше код. – racharambola