0

我创建了一个具有保留属性的 NSString fName 属性,并合成了该属性。我在 viewDidLoad 上初始化了该属性。

我的实际问题是,我使用了 [self.fName release]。此示例工作正常,但静态分析器将此行显示为错误“调用者此时不拥有的对象的引用计数不正确递减”。

参考代码:

@interface ViewController : UIViewController

@property(nonatomic,retain)NSString *fName;

@end

@implementation ViewController
@synthesize fName;

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    self.fName =@"Hello";

    [self.fName release];//Analyzer showgin error here.

}
---------
------
end
4

1 回答 1

0

没有必要在那里释放。你不分配/初始化任何东西。如果你正在做这样的事情:

self.fName = [[NSString alloc] initWithString:@"Hello"]; 

那么你必须释放self.fName。

根据经验,numberOfReleases = numberOfAlloc。

现在,黄金法则,使用 ARC :)

于 2013-06-20T20:22:03.070 回答