读取和写入属性列表的数据

时间:2014-03-23 02:05:33

标签: ios objective-c plist

我知道这个问题在这里被问过一百次因为我在这个论坛上一直在阅读关于阅读和写作的大部分问题,实际上这是我发布这个问题的主要原因。我已经厌倦了尝试关于这个主题的过时教程。我已经尝试了一些教程,但大多数都使用.xib文件或者没有使用ARC,我通常会遇到一堆错误。

有没有人知道有关读/写使用故事板和ARC的plist的教程?换句话说,是一个更新的教程。

我需要的是一个可以参考的教程,以便更好地理解如何使用plist来保存数据。

非常感谢

1 个答案:

答案 0 :(得分:0)

这是一段非常简单的代码,展示了如何读取和写入plist。代码基于此tutorial

我这里的基本上是两个标签和两个按钮在屏幕上,一个按钮用于写入数据,另一个用于在点击时读取数据,两个标签用于显示数组中的前两个项目(plist ),第0项将显示在第一个标签中,第1项将显示在第二个标签中。

.m文件

-(NSString *)getFilePath
{
    NSArray *pathArray = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    return [[pathArray objectAtIndex:0] stringByAppendingPathComponent:@"fruitList.plist"];
}

-(void)saveData
{
    NSArray *value = [[NSArray alloc] initWithObjects: @"Orange",  @"Apple", nil];
    [value writeToFile:[self getFilePath] atomically:YES];
}

-(void)loadData
{
    NSString *myPath = [self getFilePath];
    BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:myPath];

    if(fileExists)
    {
        NSArray *values = [[NSArray alloc]initWithContentsOfFile:myPath];

        self.labelOne.text = [values objectAtIndex:0];
        self.labelTwo.text = [values objectAtIndex:1];
    }
}

- (IBAction)writeData:(id)sender
{
    [self saveData];
}

- (IBAction)readData:(id)sender
{
    [self loadData];
}

.h文件

@property (weak, nonatomic) IBOutlet UILabel *labelOne;
@property (weak, nonatomic) IBOutlet UILabel *labelTwo;

-(NSString*) getFilePath;
-(void) saveData;
-(void) loadData;

- (IBAction)writeData:(id)sender;
- (IBAction)readData:(id)sender;