我在的.h文件下面的代碼:爲什麼NSString變量需要保留?
@interface Utils : NSObject {
NSString *dPath;
}
@property(nonatomic, retain) NSString *dPath;
在我的.m文件:
NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
dPath = [[documentPaths objectAtIndex:0] stringByAppendingPathComponent:kDatabaseName];
[dPath retain];
爲什麼我要保留dPath如果它已被定義爲(非原子,保留)? 如果我不添加[dPath retain];我收到了一些奇怪的隨機錯誤,並在其他函數中使用此變量時應用程序崩潰。我想這是因爲一些autorelease somehere,但我沒有任何。
那麼,什麼是(非原子,保留)做呢?是否真的有必要[dPath retain];或者我只是用這個隱藏別的東西?
如果您在Utils中設置了dPath,請確保您使用的是self.dPath,而不僅僅是dPath – anq 2011-02-05 06:36:54