У меня есть пользовательский объект, Spaces
:
#import "Spaces.h"
@implementation Spaces
@synthesize spaceName;
@synthesize spaceUsers;
@synthesize spaceIcon;
@synthesize spaceID;
@synthesize imageURLString;
- (void)dealloc
{
[spaceName release];
[spaceUsers release];
[spaceIcon release];
[imageURLString release];
[super dealloc];
}
@end
Мой контроллер корневого представления реализует cellForRowAtIndexPath:
и получает от NSArray
из Spaces
:
[[cell spaceName] setText:aSpace.spaceName];
[[cell spaceChatType] setText:@"People"];
[[cell spaceActiveUsers] setText:aSpace.spaceUsers];
Это отлично работает, и я могу нажать, чтобы перейти в подробный вид и вернуться к списку, но после 5-6 кликов назад и вперед между табличным и подробным видами я получаю ошибку в [[cell spaceName] setText:aSpace.spaceName];
, которая
'- [__NSCFSet spaceName]: нераспознанный селектор отправлен на экземпляр 0x6047b90' "
Пожалуйста, помогите! Любое понимание будет очень оценено!
UPDATE:
Я все еще получаю ту же ошибку, но я сузил ее до этого:
-Я создаю контроллер подробного представления на didSelectRowAtIndexPath ...
-Подробный вид перемещается в viewcontroller и отображается нормально, у меня также добавлена кнопка возврата.
- Подробный вид загружает информацию и обновляет по таймеру
- Нажатие кнопки «Назад» возвращает к списку таблиц
Это проблема, из-за которой мой детальный вид не освобождается из памяти, поэтому чем больше я перехожу назад и вперед между видами, тем больше таймеров уходит одновременно. Я добавил проверку для viewWillDisappear, которая останавливает таймер, устанавливая значение bool.
Я заметил, что подробный вид не выгружается ...
Из RootViewController:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
//no longer on initial view
isinit = NO;
//hide keyboard
[spacesSearch resignFirstResponder];
if (spaces != nil && spaces.count > 0)
{
//set back button reference
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Spaces" style:UIBarButtonItemStylePlain target:self action:@selector(returnSpacesList:)];
self.navigationItem.backBarButtonItem = backButton;
[backButton release];
DetailViewController *details = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil];
//Grab Data from selected Space object and pass to DetailViewController
Spaces *aSpace = nil;
if (tableView == self.searchDisplayController.searchResultsTableView)
{
if ([self.filteredListContent count] == 0)
{
//self.lastSearchText
NSLog(@"Create new space code!");
}
else
{
aSpace = [self.filteredListContent objectAtIndex:indexPath.row];
}
}
else
{
aSpace = [spaces objectAtIndex:[indexPath row]];
}
//set title and display
self.navigationController.title = [NSString stringWithFormat:@"/%@/",aSpace.spaceName];
//pass data
[details passedValue:aSpace.spaceID :aSpace.spaceName];
[self.navigationController pushViewController:details animated:YES];
[aSpace release];
[details release];
}
}
Как заставить вывести подробный вид из памяти?
Спасибо