【发布时间】:2011-05-26 06:02:28
【问题描述】:
我正在阅读 Stephen Kochan 的 Objective-C 编程(我承认我是一个完全的初学者)。
我目前的程序是一个分数计算器。我有加法、减法、乘法和除法方法。 Instruments 告诉我它们都在泄漏(只有一点点,但它是一个小程序。)
下面是减法的定义(其余的形式非常相似):
-(Fraction *) subtract: (Fraction *) f;
{
Fraction *result = [[Fraction alloc] init];
int resultNum, resultDenom;
resultNum = numerator * f.denominator - f.numerator * denominator;
resultDenom = denominator * f.denominator;
[result setTo: resultNum over: resultDenom];
return result;
[result release];
}
想堵住漏洞?提前谢谢。
此外,我在网站上四处寻找其他解释,但遗憾的是,我认为没有其他人提出过如此基本的问题。
【问题讨论】:
-
Cocoa 约定规定,任何返回已分配但未释放/自动释放的对象的方法必须具有以
new或create开头的名称。否则,如果它返回一个对象,根据 Bavarious 的回答,它应该是autoreleased。
标签: objective-c methods memory-leaks