Модель приложения на базе IPhone для навигации - PullRequest
0 голосов
/ 07 ноября 2010

Я делаю навигационное приложение для IPhone, и я начинаю с большого списка имен (около 100), и мне было интересно, какой будет самый быстрый и эффективный способ изменить контент в соответствии с тем, какое пользователь нажал на в списке.

Сейчас я изменяю содержимое в соответствии с тем, как выглядит заголовок:

NSString *comparisonString = @"Bill Clinton";
NSString *comparisonString2 = @"Bob Dole";
 if (self.title == comparisonString) {
  NSString *alterString = [NSString stringWithFormat: @"He is a democrat from North Carolina "];
  [appDelegate setModelData:alterString];
 }
 else if (self.title == comparisonString2) {
  NSString *alterString = [NSString stringWithFormat: @"He was born into a family in New York City... "];        
  [appDelegate setModelData:alterString];
 }

это будет лучший способ сделать это? Похоже, много кода будет повторяться. Я новичок в Objective-C и разрабатываю для IPhone, любой совет мне поможет. Спасибо!

1 Ответ

1 голос
/ 07 ноября 2010

То, что вы уже написали в этих двух условиях, эквивалентно этому (без утверждения if):

NSString *alterString = [NSString stringWithFormat: @"Content for %@!", self.title];
[appDelegate setModelData:alterString];

Надеюсь, что это поможет.

Все, что вы делаете, меняетсяту же самую часть строки в операторах if и else (и, возможно, позже в других операторах else)

EDIT

ок, теперь, глядя на отредактированный вопрос, выв основном есть справочная таблица сейчас.Так что self.title является ключом, и вы хотите использовать его для поиска другой строки.

Один из способов сделать это - создать список со словарем, который сопоставляет каждое имя со строкой.Затем загрузите этот список и найдите имя оттуда.Примерно так:

NSDictionary* people = [NSDictionary dictionaryWithContentsOfFile:pathToThePlist];
NSString *content = [people objectForKey:name];

(Кстати, сейчас вы используете '==' для сравнения строк, вы хотите использовать - [NSString isEqualToString:] для этого в будущем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...