如何在iOS中写入plist文件时保存多个字符串而不是覆盖?

时间:2016-07-06 19:31:41

标签: ios objective-c

我正在使用" facts.plist"按下按钮后显示一个事实(字符串),我有一个按钮,将该字符串写入" favourites.txt" 文件,我可以将它用于将来使用

以下是代码:

 NSArray *paths = NSSearchPathForDirectoriesInDomains
(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];

NSString *fileName = [documentsDirectory stringByAppendingPathComponent:@"MyFavorites.txt"];
                      //documentsDirectory];

[self.displayJoke.text writeToFile:fileName
          atomically:NO
            encoding:NSStringEncodingConversionAllowLossy
               error:nil];
NSError *error;
NSString *str = [NSString stringWithContentsOfFile:fileName encoding:NSUTF8StringEncoding error:&error];
NSLog(@"%@", str);

但每次点击该按钮时,前一个字符串都会被新字符串覆盖。如何创建字典或数组以防止这种情况?

1 个答案:

答案 0 :(得分:2)

  

每次点击该按钮时,前一个字符串都会被新字符串覆盖

它没有“被覆盖”。 正在覆盖它:

[self.displayJoke.text writeToFile:fileName
      atomically:NO
        encoding:NSStringEncodingConversionAllowLossy
           error:nil];

该行用新文件替换文件 fileName 。如果这不是您想要做的,那么不要那样做。如果要包含文件的现有内容,则由您自己首先读取文件并将其包含在您编写的内容中。 (或者,您可以查看NSFileHandle,它允许您附加到文件。)