NSDate *在几个渲染周期后被破坏。为什么?

时间:2010-09-23 09:22:47

标签: xcode debugging nsdate

  • 我有一个1.5秒间隔的常规计时器(渲染周期)。
  • 我有一个带有NSDate *成员/属性的类(非原子,保留)。
  • 我通过调用[callingClass setDate:expirationDate];
  • 来设置此日期

现在......这个NSDate有效的几个渲染周期。但是,在第3个周期左右,此变量的值似乎已损坏。

当我设置断点时,我注意到我可以悬停鼠标并看到正确显示的数据(当它有效时)。但是当它无效时我或者看到“超出范围”,一些奇怪的字符串(看起来有点像库文件名或其他东西),或者在极少数情况下调试器不会向我显示任何变量的值(我讨厌在xcode中调试)。 / p>

所以这就是为什么我认为这个变量以某种方式被破坏了。 我应该将此合成属性设置为(非原子,保留)吗?或者它应该被宣布为其他什么?

1 个答案:

答案 0 :(得分:0)

我想我发现了这个问题。 我有一个方法叫: - (NSDate*) getNSDateFromString:(NSString*)stringDate;

当我打电话给我时,我正在做NSDate * date = [self getNSDateFromString:expirationString]; 这导致我上面描述的行为。

然后我将其更改为以下消除了崩溃:

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