Я пытаюсь найти, есть ли какой-либо объект в изменяемом массиве, который соответствует объекту, который я передаю. Пожалуйста, смотрите функцию ниже.
Имя взято из контроллера табличного представления, поэтому постукивающая строка сохраняется в имя и передается этой функции. Я пытаюсь проверить, совпадает ли имя в контроллере табличного представления с именем, поступающим из базы данных. Здесь имя относится к 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: Valentin
Поиск контактного лица
Barefield: Collin, Baylis: Efren, Битти: Питер, Беквит Линн, Бенни: Вильма, Бермудес: Ленор, Berryhill: Gerard, желчи: Джоди, Blackmon: Валентин, Blassingame: Роза, Блюм: Рена, Бонет: Клод, Бостик: Valerie, Bouldin: Renaldo, Bracewell: Брендан, Брэдфорд: Kris, Brathwaite: Билл, Бруггер: Исмаэль, Brumit: Джули, Buchholtz: Mathew, Бункер: Кристал, Burch: Флойд, Бурман: Санг, Мясник: Принц, Butcher: Рори,
* 1021 Поиск Контакты *
Barefield: Collin, Baylis: Efren, Битти: Питер, Беквит Линн, Бенни: Вильма, Бермудес: Ленор, Berryhill: Gerard, желчи: Джоди, Blackmon: Валентин, Blassingame: Роза, Блюм: Рена, Бонет: Клод, Бостик: Valerie, Bouldin: Renaldo, Bracewell: Брендан, Брэдфорд: Kris, Brathwaite: Билл, Бруггер: Исмаэль, Brumit: Джули, Buchholtz: Mathew, Бункер: Кристал, Burch: Флойд, Бурман: Санг, Мясник: Принц, Butcher: Рори,