有小伙伴问了一个问题,plist写入失败的问题。下面我说下相关的代码:
1.写入plist(代码创建的plist文件)此方法是不断写入,不会替换之前数据
- (void)insertToPlist:(NSDictionary *)dictionary nickName:(NSString *)nickName {
NSString *plistPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject] stringByAppendingPathComponent:@"chatRoom.plist"];
NSMutableDictionary *userDict = [[NSMutableDictionary alloc] initWithContentsOfFile:plistPath];
//下边if判断很重要,不然会写入失败.
if (!userDict) {
userDict = [[NSMutableDictionary alloc] init];
}
//设置属性值
[userDict setObject:dictionary forKey:nickName];
//写入文件
[userDict writeToFile:plistPath atomically:YES];
}
注意:如果想每次都替换数据,把上边的[[NSMutableDictionary alloc] initWithContentsOfFile:plistPath]改成:[[NSMutableDictionary alloc] init],if语句三行代码去掉即可
2.读取plist(代码创建的plist文件)
- (void)getPlistDictionary:(NSString *)nickName
{
NSString *plistPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject] stringByAppendingPathComponent:@"chatRoom.plist"];
NSMutableDictionary *userDict = [[NSMutableDictionary alloc ]initWithContentsOfFile:plistPath];
//userDict[nickName]就是上边方法存入的字典,取出来就可以进行相应的赋值操作啦
}