Plist 文件的優化


Foundation 框架提供了 NSPropertyListSerialization 類處理plist文件



//從文件讀入數據到NSMutableArray
- (NSMutableArray *) readFromArray:(NSString *) path
{
    NSMutableData *data = [[NSMutableData alloc] initWithContentsOfFile:path];
    NSMutableArray *array = [NSPropertyListSerialization propertyListWithData:data options:NSPropertyListMutableContainersAndLeaves format:NULL error:NULL];
    return array;
}

//寫入NSMutableArray 到文件
- (void) write:(NSMutableArray *) array toFilePath:(NSString *) path
{
    NSData *data = [NSPropertyListSerialization dataWithPropertyList:array format:NSPropertyListBinaryFormat_v1_0 options:NSPropertyListMutableContainersAndLeaves error:NULL];
    BOOL success = [data writeToFile:path atomically:YES];
    if (success == NO)
    {
        NSLog(@"寫入不成功");
    }
}

    options
    NSPropertyListImmutable 屬性列表包含不可變對象
    NSPropertyListMutableContainers 屬性列表父節點是可變的類型,子節點是不可變類型
    NSPropertyListMutableContainersAndLeaves  屬性列表父節點和子節點都是可變的類型

    format:
    NSPropertyListXMLFormat_v1_0  指定屬性列表文件格式爲XML格式,仍然是純文本類型,不會壓縮文件
    NSPropertyListBinaryFormat_v1_0  指定屬性列表文件格式爲二進制格式,文件是二進制類型,會壓縮文件
    NSPropertyListOpenStepFormat  指定屬性列表文件格式爲ASCII碼格式,對於舊格式的屬性列表文件,不支持寫入操作


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章