2011-07-21 208 views
1

我创建了一个NSTimer并每15秒调用一次。我打电话的方法使Web服务呼叫。在这种方法我写这篇文章的代码:这会泄漏内存

GetData *ws = [[GetData alloc]init]; 
    [ws GetSomeData:156]; 
    [ws release]; 

在这里,我做实例来调用Web服务方法,拨打电话和释放对象的类。这种方法好坏吗?

回答

3

这里没有泄漏,但如果你想要做ws什么,不要release它,autorelease它来代替。

+1

你能解释为什么autorelease改为释放吗? – 1110

+0

发送'release'会将'retainCount'设置为零(在你的例子中),你的对象将被释放。 'autoreleased'闲谈你的对象的释放。所以你在这里分配/初始化它,获取数据,立即释放它。后来使用'ws'可能会导致崩溃 – 2011-07-21 08:33:38

+0

您应该阅读http://google-styleguide.googlecode.com/svn/trunk/objcguide.xml ..它提供了一些提示和最佳实践。他们建议尽可能使用autorelease,因为如果您忘记添加版本,它会最大限度地减少泄漏的可能性:) – Bastian

1

这是正确的做法。你是alloc它,所以你拥有它,而且你必须用release它完成它之后。

作为便笺,您的方法名称GetSomeData不遵循可可命名约定:它应该是someData