Полагаю, вы пришли из веб-разработки?Мне также было трудно сделать это таким образом, но это лучший способ.Это, вероятно, возможно, но лучше, если вы привыкнете делать это так, это действительно так.
По сути, определяют NSArray в файле .h (так что весь сценарий может его использовать).
затем в функции init:
// set the array
myArray = [NSArray arrayWithObjects:@"One",@"Two",@"Threee",nil];
[myArray retain];
затем методы делегирования табличного представления:
// set numebr of rows
- (CGFloat)tableView:(UITableView *)tableView numberOfRowsForSection:(NSUInteger)section {
return [myArray count];
}
// set the cell titleLabel value
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
// set the cell - I can't remember the exact code then do:
cell.textLabel.text = [myArray objectAtIndex:[indexPath row]];
}
// similarly
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSLog(@"%@",[myArray objectAtIndex:[indexPath row]];
}
(заявление об отказе: это только у меня в голове, и яне проверил точные методы - они, вероятно, в некотором роде неправильны - но код внутри функций - это то, что вам нужно на самом деле.)
Когда вы начнете использовать это, вы увидите, что это намного лучшечем «скрыть» идентификатор где-то в таблице.Чтобы получить что-то из базы данных, я бы предложил добавить все это в словарь, массив или тому подобное и делать это так, когда вы инициализируете класс, но если вы действительно хотите сделать это динамически, тогда притворитесь, что ваши «скрытые» идентификаторы простоИндексы массива.Таким образом, идентификатор # 1 находится в индексе 1 в вашем массиве.:)