plist文件操作

直接将项目中用到的对plist文件处理的部分拿出来:

//向草稿箱中写如数据
- (void)writeToSendedList:(NSString *)message{

    //沙盒中的目录
    NSArray *storeFilePath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *doucumentsDirectiory = [storeFilePath objectAtIndex:0];
    NSLog(@"doucumentsDirectiory:%@",doucumentsDirectiory);
    NSString *plistPath =[doucumentsDirectiory stringByAppendingPathComponent:@"MessageList.plist"];
    if( [[NSFileManager defaultManager] fileExistsAtPath:[doucumentsDirectiory stringByAppendingPathComponent:@"MessageList.plist"]]==NO ) {
        // ============================== 写入plist初始化数据 ===========================
        NSMutableDictionary *messageList = [[NSMutableDictionary alloc] init];
        
        
        NSMutableDictionary *sendedList = [[NSMutableDictionary alloc] init];
        NSMutableArray *hztest01Sended = [[NSMutableArray alloc] initWithObjects:@"123",@"12222",@"fox", nil];
        [sendedList  setObject:hztest01Sended forKey:@"hztest01"];
        
        
        NSMutableDictionary *draftsList = [[NSMutableDictionary alloc] init];
        NSMutableArray *hztest01Drafts = [[NSMutableArray alloc] initWithObjects:@"123",@"12222",@"fox", nil];
        [draftsList  setObject:hztest01Drafts forKey:@"hztest01"];
        
        
        [messageList setObject:sendedList forKey:@"DraftsList"];
        [messageList  writeToFile:plistPath atomically:YES];
    }
    
    
    
    
    
    //非沙盒中的目录
    //NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"SendedList"ofType:@"plist"];
    
    NSMutableDictionary *dictionary = [[NSMutableDictionary alloc] initWithContentsOfFile:plistPath]; 
    NSMutableDictionary *mydictionary = [[NSMutableDictionary alloc] initWithDictionary:[dictionary objectForKey:@"SendedList"]];
    NSMutableArray *mysendedList = [[NSMutableArray alloc] initWithArray:[mydictionary objectForKey:@"hztest01"]];
    NSLog(@"hztest01的发送箱:%@",mysendedList);
 
    [mysendedList addObject:message];
    
    
    [mydictionary removeObjectForKey:@"hztest01"];
    [mydictionary setObject:mysendedList forKey:@"hztest01"];
    [dictionary setObject:mydictionary forKey:@"SendedList"];
    [dictionary writeToFile:plistPath atomically:YES];
    
    
    [mysendedList release];
    [mydictionary release];
    [dictionary release];

}
原文地址:https://www.cnblogs.com/foxmin/p/2578214.html