我想在属性列表中保存一组对象。 我是通过使用这种方法完成的:
NSString *path = [[NSBundle mainBundle] bundlePath];
NSString *finalPath = [path stringByAppendingPathComponent:@"Data.plist"];
DataObj *obj1 = [[DataObj alloc]initWithDataObj:@"Facebook" :@"yosi" :@"1234" :[UIImage imageNamed:@"blogger.png"] ];
DataObj *obj2 = [[DataObj alloc]initWithDataObj:@"Facebook2" :@"yosi2" :@"12345" :[UIImage imageNamed:@"blogger.png"] ];
self.list = [[NSMutableArray alloc]initWithObjects:obj1,obj2,nil ];
[self.list writeToFile:finalPath atomically:YES];
DataObj中的第四个对象是一个图像而我无法将其保存在属性列表中,这个问题有什么解决方案吗?
答案 0 :(得分:1)
答案 1 :(得分:0)
将图像写入应用程序文档目录中的文件,并将文件名或文件路径保存到图像中的属性列表中。
答案 2 :(得分:0)
如果您正在使用imageNamed,那么我假设图像在您的主要包中,在这种情况下,我会将图像名称放在plist中,并在您阅读时再次使用imageNamed:
另一种选择是将图像转换为可编码的内容,如NSData对象。当您重新读取属性列表时,将数据转换回UIImage。
答案 3 :(得分:0)
您正在将DataObj
个对象放入您尝试保存为plist的数组中。 Plist文件不能包含任意对象,因此不起作用。
图像是您的第二个问题。
答案 4 :(得分:-1)
您的DataObj
班级必须采用NSCoding protocol进行归档。看看Encoding and Decoding Objects。