NSString WriteToFile不会永久保留?

时间:2012-05-24 05:02:01

标签: cocoa-touch ios5 save automatic-ref-counting xcode4.3

我正在尝试将存储在NSString变量中的文本保存在与项目主包一起存储的文本文件中。

到目前为止,我没有成功,并尝试了很多不同的方法。 为什么这不永久?

NSString *pathToFile = [[NSString alloc]init];
pathToFile = [[NSBundle mainBundle] pathForResource:@"ListOfSavedImages" ofType:@"txt"];
NSLog(@"%@",pathToFile);

NSString *stringToWriteToFile = [[NSString alloc]init];
stringToWriteToFile=@"Adam";
NSLog(@"%@",stringToWriteToFile);

[stringToWriteToFile writeToFile:pathToFile atomically:YES encoding:NSUTF8StringEncoding error:NULL];
NSLog(@"called!");

NSString *contentsOfFile1 = [NSString stringWithContentsOfFile:pathToFile encoding:NSUTF8StringEncoding error:NULL];
NSLog(@"%@",contentsOfFile1);

虽然此代码段末​​尾的NSLog输出“Adam”,但实际文件不会更改,但我也在视图加载时对文件内容进行nslogging,并且它总是恢复为原始文件文本(它实际上从未改变)。我做错了什么?

我正在使用Xcode 4.3,ARC和故事板。

1 个答案:

答案 0 :(得分:1)

当您在本地实例化变量时,当您到达块的末尾时它们会泄漏}。

尝试使用声明为特定视图控制器属性的IVars,在.m文件中合成。

查看有关iTunes的斯坦福课程的C139p,最好是ARC之前的早期系列,因为这完全解释了数据持久性的概念。