Ошибка: нераспознанный селектор отправлен на экземпляр - PullRequest
1 голос
/ 05 мая 2011

У меня есть пользовательский объект, 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];

    }
}

Как заставить вывести подробный вид из памяти?

Спасибо

Ответы [ 2 ]

1 голос
/ 05 мая 2011

Похоже, [cell spaceName] был автоматически выпущен.Я не могу понять, как вы это определили, но взгляните на эту часть вашего кода.
Если вам нужна дополнительная помощь, вам нужно предоставить больше кода.

0 голосов
/ 05 мая 2011

Возможно, ваш aSpace = [spaces objectAtIndex:[indexPath row]]; не возвращает космический объект. Возможно, прежде чем вы попробуете его использовать, вы можете проверить что-то вроде if ([aSpace class] == [Spaces class])

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