ios NSKeyedArchiver release = плохой доступ - PullRequest
0 голосов
/ 21 октября 2011

У меня проблема с нубом, и я хотел бы, чтобы вы указали мне правильное направление.В основном у меня есть собственный класс, который реализует протокол копирования.Однако, когда я сохраняю класс во время выполнения, я освобождаю пользовательский класс и получаю неправильный доступ.Я могу видеть в инструментах, что счет удержания равен -2.Я сохраняю пользовательский класс следующим методом:

-(void)storeDataInFile:(NSString*)dataFileName DataArray:(NSArray*)dataToStore 
{
    //Get the path
    NSString *path = [self pathToDocumentsForDataFile:dataFileName];
    //Archive the file
    [NSKeyedArchiver archiveRootObject:dataToStore toFile:path];
}

Использую ли я метод sor, сохраняя массив со строками, он работает безупречно.Что я должен смотреть глубже в отношении моего пользовательского класса?

С уважением

1 Ответ

0 голосов
/ 11 ноября 2011

Я решил эту проблему, однако я предоставил решение только в комментарии, который был удален.Поэтому я просто хотел опубликовать ответ, который указывает, что это была ошибка нуба.Из более ранней реализации теста у меня был следующий метод в классе

    - (id)copyWithZone:(NSZone *)zone
{
    return self;
}

//retain is counted up
- (id)retain {
    return self;
}

- (unsigned)retainCount {
    return UINT_MAX;
}

Эти методы разрушили мой счет сохранения:)

...