У меня проблема с моим TableController.
Когда я вызываю cellForRowAtIndexPath (), я могу получить информацию из класса Database с помощью:
myGroupsAppDelegate *appDelegate = (myGroupsAppDelegate *)[[UIApplication sharedApplication] delegate];
myGroupsDB *mgdb = [ appDelegate.groups_db objectAtIndex:indexPath.row ];
cell.textLabel.text = mgdb.group_name;
[mgdb release];
, но если я пытаюсь вызвать то же самое из didSelectRowAtIndexPath (), я получаю ошибку. Мне нужно передать два значения в представление, и я использую этот код:
SingleGroupView *sgv = [[SingleGroupView alloc] initWithNibName:@"SingleGroupView" bundle:[NSBundle mainBundle]];
myGroupsAppDelegate *appDelegate = (myGroupsAppDelegate *)[[UIApplication sharedApplication] delegate];
myGroupsDB *mgdb = [ appDelegate.groups_db objectAtIndex:indexPath.row ];
sgv.groupID = mgdb.id_group;
sgv.groupName = mgdb.group_name;
[mgdb release];
Когда я пытаюсь назначить mgdb.id_group для sgv.groupID, я получаю EXC_BAD_ACCESS. Кажется, что MGDB пуст.
-------------- ИЗМЕНЕНИЕ ------------------
После Build and Analyze компилятор показал «Неправильное уменьшение числа ссылок объекта, который не является владельцем на данный момент». Но я создаю здесь, разве это не локально? Поэтому я добавил удержание:
myGroupsDB *mgdb = [[ appDelegate.groups_db objectAtIndex:indexPath.row ] retain];
и теперь это работает, но, если я пытаюсь вызвать тот же код (просто нажав на строку, изменить вид, вернуться и снова нажать строку), приложение завершает работу без журнала и с тем же сообщением.
Есть предложения?
спасибо,
Andrea