NSDate * становится поврежденным после нескольких циклов рендеринга. Зачем? - PullRequest
0 голосов
/ 23 сентября 2010
  • У меня есть общий таймер с интервалом 1,5 секунды (цикл рендеринга).
  • У меня есть класс с NSDate * member / property (nonatomic, retain).
  • Я установил эту дату, вызывая [callClass setDate: expirationDate];

Теперь ... пара циклов рендеринга, эта NSDate действительна.Тем не менее, примерно в 3-м цикле значение этой переменной искажается, кажется.

Когда я устанавливаю точку останова, я замечаю, что могу навести курсор мыши и увидеть данные, отображаемые правильно (когда они действительны).Но когда он недействителен, я либо вижу «вне области видимости», какие-то странные строки (выглядит как имена файлов библиотеки или что-то в этом роде), или в редких случаях отладчик не показывает мне значение любой переменной (я ненавижу отладку в xcode).1011 *

Так вот почему я думаю, что эта переменная как-то повреждена.Должен ли я установить это синтезированное свойство как (неатомное, сохранить)?Или это должно быть объявлено как что-то еще?

1 Ответ

0 голосов
/ 25 сентября 2010

Я думаю, что нашел проблему.У меня есть метод с именем: - (NSDate*) getNSDateFromString:(NSString*)stringDate;

Когда я вызвал это, я делал NSDate * date = [self getNSDateFromString: expirationString];Это вызывало поведение, которое я описал выше.

Затем я изменил его на следующее, что устранило сбои:

NSDate *date = [[self getNSDateFromString:expirationString] retain]; // do something with the date here... [data release];

...