我正在使用Objective-C开始我的第一步,并且在XCode 4.1中遇到了一个轻微的问题,尽管是一个令人困惑的问题,即静态分析器(Product-> Analyze).我为有理数创建了一个简单的Fraction类,我分配并初始化为这样,
Fraction* f = [[[ Fraction alloc ] initWithNumerator:3 withDenomimator:5]
autorelease];
[ f print ];
Run Code Online (Sandbox Code Playgroud)
哪个print是NSLog用于显示分数的方法,一切正常.但是,如果我将alloc/ initconstruct分成两个语句(我意识到这是非惯用的 - 我只是想了解机器)并使用手册release而不是autorelease给出:
Fraction* f = [ Fraction alloc ]; // 1. Method returns an Objective-C object with
// a +1 retain count (owning reference)
[ f initWithNumerator:3 withDenomimator:5]; // 2. Object released
[ f print ]; // 3. Reference-counted object is used after it is released
[ f release ]; …Run Code Online (Sandbox Code Playgroud)