2011-07-21 87 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