iOS学习笔记—— 数据持久化(Plist)

1、读取全部数据

- (NSMutableArray *) loadAllData
{
    NSString *path = [[NSBundle mainBundle] pathForResource:@"data" ofType:@"plist"];
    NSMutableArray *ans = [[NSMutableArray alloc] init];
    NSMutableArray *dataArray = [[NSMutableArray alloc] initWithContentsOfFile:path];       // 从属性列表读取数据

    for (NSDictionary *dict in dataArray) {
        LLInfo *info = [LLInfo infoMake:[dict objectForKey:@"name"] :[dict objectForKey:@"age"]];
        [ans addObject:info];
    }
    return ans;
}


2、插入数据

- (void) insertInfo:(LLInfo *)data
{
    NSMutableArray *dataArray = [[NSMutableArray alloc] initWithContentsOfFile:path];
    NSDictionary *dict = [NSDictionary dictionaryWithObjects:@[data.name, data.age] forKeys:@[@"name", @"age"]];
    [dataArray addObject:dict];
    [dataArray writeToFile:path atomically:YES];    
}


3、删除数据

- (void) deleteInfo:(LLInfo *)data
{
    NSMutableArray *dataArray = [[NSMutableArray alloc] initWithContentsOfFile:path];       // 从属性列表读取数据
    
    for (NSDictionary *dict in dataArray) {
        if ([[dict objectForKey:@"name"] compare: data.name] == 0) {
            [dataArray removeObject:dict];
            [dataArray writeToFile:path atomically:YES];
            break;
        }
    }
}

4、交换数据位置

- (void) exchangeInfo: (LLInfo *) from : (LLInfo *) to
{
    NSMutableArray *dataArray = [[NSMutableArray alloc] initWithContentsOfFile:path];       // 从属性列表读取数据
    int i = -1, j = -1;
    for (NSDictionary *dict in dataArray) {
        if ([[dict objectForKey:@"name"] compare: from.name] == 0) {
            i = [dataArray indexOfObject:dict];
        }
        if ([[dict objectForKey:@"name"] compare: to.name] == 0) {
            j = [dataArray indexOfObject:dict];
        }
        if (i != -1 && j != -1) {
            break;
        }
    }
    [dataArray exchangeObjectAtIndex:i withObjectAtIndex:j];
    [dataArray writeToFile:path atomically:YES];
}

5、修改数据

- (void) modifyInfo: (LLInfo *) data : (LLInfo *) newData
{
    NSMutableArray *dataArray = [[NSMutableArray alloc] initWithContentsOfFile:path];
    
    for (NSDictionary *dict in dataArray) {
        if ([[dict objectForKey:@"name"] compare: data.name] == 0) {
            [dict setValue: newData.name forKey:@"name"];
            [dict setValue: newData.age forKey:@"age"];
            [dataArray writeToFile:path atomically:YES];
            break;
        }
    }
}








你可能感兴趣的:(ios)