Iphone 释放要再次使用的指针值?
当使用下面的行时,我会收到startTimer和stopTimer时间戳之间的差异,完美。但我的问题是,我似乎无法释放/释放startTimer和stopTimer,以便再次将它们用作新值。。有人能帮忙吗 基本上,在相同的视图中,我启动计时器,停止计时器,然后打印时差。然后我想用新的价值观重新开始整个过程Iphone 释放要再次使用的指针值?,iphone,objective-c,cocoa-touch,Iphone,Objective C,Cocoa Touch,当使用下面的行时,我会收到startTimer和stopTimer时间戳之间的差异,完美。但我的问题是,我似乎无法释放/释放startTimer和stopTimer,以便再次将它们用作新值。。有人能帮忙吗 基本上,在相同的视图中,我启动计时器,停止计时器,然后打印时差。然后我想用新的价值观重新开始整个过程 startTimer = [[NSDate alloc]init]; stopTimer = [[NSDate alloc]init]; newTime = [NSString stringW
startTimer = [[NSDate alloc]init];
stopTimer = [[NSDate alloc]init];
newTime = [NSString stringWithFormat:@"Time : %f", [stopTimer timeIntervalSinceDate:startTimer]];
我试着使用:(但它们似乎不起作用)
使用这些时,应用程序在我第二次使用它们时崩溃。您不需要调用dealloc。当对象的refcount降至0时,将在对象释放后调用它
[在这种情况下-在
release
消息调用之后]您只需调用release
即可放弃您对相关对象的兴趣/所有权,然后再根据需要分配/初始化对象
对于直接调用dealloc
,您应该永远不要这样做(除了在您创建的任何dealloc方法结束时调用[super dealloc];
),因为所涉及的对象可能仍在其他地方使用。(在您提供的示例中,这显然是不可能的,但这是一个很好的启发。)
老实说,我建议您仔细阅读,因为这将在将来产生回报。您可以在分配和初始化计时器之后调用release,这样您将拥有更新的计时器
[startTimer release];
[stopTimer release];
startTimer = [[NSDate alloc]init];
stopTimer = [[NSDate alloc]init];
我想这对你有帮助 更正。。除非打电话给[super dealloc]:-)谢谢-我现在就试试这个!干杯,伙计们,我会读一读——我想这已经解决了我的问题:)到目前为止还没有奇怪的崩溃,应用程序正在按预期工作很好的一个-让我试试这个,我会用我的resetUI方法创建发布程序更具体地说,你不能自己调用
dealoc
。只有一个例外:您必须在自己的dealloc
override中调用[super dealloc]
。一般来说,是的,当然。但是在这个特定问题的上下文中——不需要调用dealloc——释放就足够了,因为当refcount下降到0时,运行库将自动调用dealloc。
[startTimer release];
[stopTimer release];
startTimer = [[NSDate alloc]init];
stopTimer = [[NSDate alloc]init];