objective-c – 目标C中的泄漏方法
发布时间:2020-12-16 10:19:07 所属栏目:百科 来源:网络整理
导读:我正在研究Stephen Kochan在Objective-C中的编程(这是为了承认我是一个完全的初学者). 我目前的程序是分数计算器.我有加,减,乘和除法.乐器告诉我他们都在泄漏(只是一点点,但它是一个很小的程序.) 这是减法方法的定义(其余的遵循非常相似的形式): -(Fraction
我正在研究Stephen Kochan在Objective-C中的编程(这是为了承认我是一个完全的初学者).
我目前的程序是分数计算器.我有加,减,乘和除法.乐器告诉我他们都在泄漏(只是一点点,但它是一个很小的程序.) 这是减法方法的定义(其余的遵循非常相似的形式): -(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]; } 想堵塞泄漏?提前谢谢. 此外,我四处寻找网站上的另一个解释,但遗憾的是,我认为没有其他人问过任何这么基本的问题. 解决方法
问题在于:
return result; [result release]; -release永远不会发送到结果,因为返回后的任何语句都不会被执行.这些语句称为死代码. 你应该自动释放你的对象,例如: return [result autorelease]; 请注意,您应该使用-autorelease而不是-release,因为-release会导致结果的立即释放,这不是您想要的.另一方面,自动释放的对象在将来的某个时刻被释放 – 特别是在相应的自动释放池被耗尽时. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |