【发布时间】:2010-04-03 19:28:01
【问题描述】:
NSArray *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [path objectAtIndex:0];
NSString *databasePath = [documentsDirectory stringByAppendingPathComponent:@"DB"];
NSString *fileName = [newWordbookName stringByAppendingString:@".csv"];
NSString *fullPath = [databasePath stringByAppendingPathComponent:fileName];
[[NSFileManager defaultManager] createFileAtPath:fullPath contents:nil attributes:nil];
[databasePath release];
//[fileName release]; Error!
//[fullPath release]; Error!
//NSLog(@"#1 :databasePath: %d",[databasePath retainCount]);
//NSLog(@"#1 :fileName: %d",[fileName retainCount]);
//NSLog(@"#1 :fullPath: %d",[fullPath retainCount]);
我正在使用此代码并希望发布 NSString* .. 因此,我声明了 NSString 的 fileName、fullPath 和 databasePath。 数据库已发布,但文件名、完整路径未发布。我不知道为什么会这样。
我知道 NSArray 是自动释放的。但是documentsDirectory 是自动发布的吗? (newWordbookName 是 nsstring 类型)
我希望我看一下有关 iPhone 内存管理的文档。
【问题讨论】: