1
我创建了一个NSTimer并每15秒调用一次。我打电话的方法使Web服务呼叫。在这种方法我写这篇文章的代码:这会泄漏内存
GetData *ws = [[GetData alloc]init];
[ws GetSomeData:156];
[ws release];
在这里,我做实例来调用Web服务方法,拨打电话和释放对象的类。这种方法好坏吗?
我创建了一个NSTimer并每15秒调用一次。我打电话的方法使Web服务呼叫。在这种方法我写这篇文章的代码:这会泄漏内存
GetData *ws = [[GetData alloc]init];
[ws GetSomeData:156];
[ws release];
在这里,我做实例来调用Web服务方法,拨打电话和释放对象的类。这种方法好坏吗?
这里没有泄漏,但如果你想要做ws
什么,不要release
它,autorelease
它来代替。
这是正确的做法。你是alloc
它,所以你拥有它,而且你必须用release
它完成它之后。
作为便笺,您的方法名称GetSomeData
不遵循可可命名约定:它应该是someData
。
你能解释为什么autorelease改为释放吗? – 1110
发送'release'会将'retainCount'设置为零(在你的例子中),你的对象将被释放。 'autoreleased'闲谈你的对象的释放。所以你在这里分配/初始化它,获取数据,立即释放它。后来使用'ws'可能会导致崩溃 – 2011-07-21 08:33:38
您应该阅读http://google-styleguide.googlecode.com/svn/trunk/objcguide.xml ..它提供了一些提示和最佳实践。他们建议尽可能使用autorelease,因为如果您忘记添加版本,它会最大限度地减少泄漏的可能性:) – Bastian