gpt4 book ai didi

iphone - iOS 将 View 和图像编码/解码到文件目录中

转载 作者:行者123 更新时间:2023-11-28 23:11:50 25 4
gpt4 key购买 nike

我有一个对象,它有一个自定义 UIView 的 NSMutableArray、一个 UIImage 和几个字符串。

我将那个对象放入字典中。字典被插入 NSData 然后我这样做:

NSString *path;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
path = [paths objectAtIndex:0];

NSString *fileName = DATA;
path = [path stringByAppendingPathComponent:fileName];

NSMutableData *data = [[NSMutableData alloc]init];
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc]initForWritingWithMutableData:data];
[archiver encodeObject:dict forKey: DATA];
[archiver finishEncoding];

[[NSFileManager defaultManager] createFileAtPath:path
contents:data
attributes:nil];

保存成功。当我尝试加载数据时,文件系统显示我的对象已保存,但当我尝试解码时,它说我的数据为 NULL。

这是我的解码代码:

-(NSDictionary*)loadData
{
NSString *path;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
path = [paths objectAtIndex:0];
NSArray *directoryContent = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:path error:NULL];

if (directoryContent != nil && [directoryContent count] > 0)
{
NSLog(@"CONTENT COUNT: %d",[directoryContent count]);
NSString *fileName = DATA;
path = [path stringByAppendingPathComponent:fileName];
NSData *data = [[NSMutableData alloc]initWithContentsOfFile:[directoryContent objectAtIndex:0]];
NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];
NSDictionary *dict = [unarchiver decodeObjectForKey: DATA];
[unarchiver finishDecoding];

return dict;
}
else
return nil;
}

我的应用程序允许用户移动一堆 View ,我只是想找到一种简单的方法来存储 View 帧和转换,而不必提取每个 int/string 值。我也希望不必将 UIImage 分解为字节数组,然后将其重新加载回 UIImage。

我是不是在做一些疯狂的事情,希望获得不可能实现的功能?

我唯一的选择是将数组中的每个 UIView 分解为用于变换、框架等的单独值吗?

想法?

最佳答案

文档目录是否包含除您的数据文件之外的任何内容? (我相信它总是至少包含一个名为“收件箱”的子目录。)我在您的 loadData 方法中注意到了这些行:

    path = [path stringByAppendingPathComponent:fileName];
NSData *data = [[NSMutableData alloc]initWithContentsOfFile:[directoryContent objectAtIndex:0]];

您将 fileName 附加到 path,但是您没有使用它。您刚刚读取了 directoryContent 中提到的第一个文件。

关于iphone - iOS 将 View 和图像编码/解码到文件目录中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8025676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com