Может ли кто-нибудь предложить лучший способ сделать следующее, пожалуйста?Как заполнить разделы в UITableView
У меня есть UIViewController с 3 кнопками на нем. Для ясности, кнопки: 1. Отели 2. Торговые 3. Закрытый Деятельность
На кнопку мыши, он будет идти в UITableView, который будет иметь список предприятий, связанных с этой кнопкой. Таким образом, нажав на Hotels, вы увидите список отелей.
Но моя проблема заключается в следующем.
Для отелей и магазинов UITableView необходимо будет разделять разделы, например. 3-звездочные отели 4-звездочных отелей. И для покупки в UITableView должно быть не менее 12 различных разделов. Внутри мероприятия не будет секций - только список предприятий.
Чтобы заполнить UITableView, я прочитал список всех предприятий из CSV-файла. В моем .csv-файле я дал каждой группе предприятий идентификатор, например. отели (как 3, так и 4 звезды) - это ID 1, магазины (все 12 разных разделов) - ID 2, а закрытые действия - это ID 3 Вот пример того, как выглядит файл .csv.
ID, Company Name, Address, Tel, Email, Website, Details, Image Name
Мне удалось прочитать список предприятий в группе, но у меня возникли проблемы с размещением отелей и покупками в секциях. Я пробовал следующее. Напр. В отелях я добавляю 2 массива, а затем проверяю имена каждого отеля. Если название гостиницы является, например, 1A или 2A, я добавляю его к 3-звездному массиву, и если его, например, 1B или 2B Я добавляю его в 4-звездный массив. Но это очень утомительная и не лучшая практика, которую я себе представлял. И это станет еще более утомительным, так как раздел покупок содержит десятки предприятий. Поэтому я не могу проверить каждое название компании отдельно. Вот как я добавляю Business Objects в NSMutableArray _array для определения разделов. Но, как я уже упоминал, со всеми именами компаний, которые нужно проверить, это станет очень утомительным.
- (NSArray *) csvArray2PresidentsArray:(NSArray *)csvArray
{
int i = 0;
for (NSArray *row in csvArray)
{
// The first row is a header - SKIP
if (i > 0)
{
BusinessDetailContent *_businessDetailContent = [[BusinessDetailContent alloc] init];
_businessDetailContent.no = [row objectAtIndex:0];
_businessDetailContent.companyName = [row objectAtIndex:1];
_businessDetailContent.address = [row objectAtIndex:2];
_businessDetailContent.tel = [row objectAtIndex:3];
_businessDetailContent.email = [row objectAtIndex:4];
_businessDetailContent.website = [row objectAtIndex:5];
_businessDetailContent.details = [row objectAtIndex:6];
_businessDetailContent.imageName = [row objectAtIndex:7];
// USE TO FILTER RESULTS
NSString *strFromInt = [NSString stringWithFormat:@"%d", self.tagNumber];
if ([_businessDetailContent.no isEqualToString:@"1A"] ||
[_businessDetailContent.no isEqualToString:@"2A"])
{
[_threeStarArray addObject: _businessDetailContent];
}
else if ([_businessDetailContent.no isEqualToString:@"1B"] ||
[_businessDetailContent.no isEqualToString:@"2B"])
{
[_fourStarArray addObject: _businessDetailContent];
}
}
i++;
}
[_array addObject: _threeStarArray];
[_array addObject: _fourStarArray];
return (NSArray *) self.filteredArray;
}
Есть ли лучший способ проверить/обработать это? Я подумал о добавлении другого поля в CSV-файл, который определит, например, отель как 3 или 4 звезды. И то же самое для всех предприятий. Тогда в приведенном выше коде я могу просто просмотреть этот вторичный идентификатор и в зависимости от того, что это такое, я добавляю его в свой собственный массив/раздел?