程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> ios-iphone-應用報錯incorrect decrement

ios-iphone-應用報錯incorrect decrement

編輯:編程綜合問答
iphone-應用報錯incorrect decrement

創建NSString屬性,並且合成屬性,在viewDidLoad中對屬性進行初始化。

問題:使用 [self.fName release],靜態分析其顯示錯誤
'Incorrect decrement of the reference count of an object that is not owned at this point by the caller'.

相關代碼:

@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

最佳回答:


對於控制器中的引用類型的釋放,我們通常會把它放到- (void)dealloc -(void)viewDidUnLoad 中來處理,而不是在使用的過程中。在使用的過程中去釋放對象可能導致其它地方對該對象的引用無效,致使在訪問相關對象時導致程序崩潰。 常用的做法是

-(void)viewDidUnLoad {
    self.fName=nil;
    [super viewDidUnLoad];
}

-(void)dealloc {
  [_fName release];
  [super dealloc];
}
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved