首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编码NSMutableArray

编码NSMutableArray
EN

Stack Overflow用户
提问于 2013-03-25 00:24:26
回答 1查看 1.3K关注 0票数 1

编辑:好的,我决定将数组保存在userDefaults中...应该很简单,对吧?保存:

代码语言:javascript
复制
NSUserDefaults *userDefs = [NSUserDefaults standardUserDefaults];
    [userDefs setObject:videoArray forKey:@"dataArray"];
    [userDefs synchronize];

负载:

代码语言:javascript
复制
 NSUserDefaults *userDefs = [NSUserDefaults standardUserDefaults];
    videoArray = [[NSUserDefaults standardUserDefaults] mutableArrayValueForKey:@"dataArray"];

    [tableview reloadData];
    NSLog(@"%@",videoArray);

数组中的对象的类:

代码语言:javascript
复制
@interface DEVideoModel : NSObject

@property (copy) NSString *name;
@property (copy) NSImage *thumbnail;
@property (copy) NSDictionary *qualities;
@property (readwrite) float videoSize;
@property (readwrite) float progress;
@property (copy) NSString *filePath;
@property (copy) NSDate *datum;


@end

@synthesize name,filePath,videoSize,qualities,thumbnail,datum,progress;
-(id)init {
    self = [super init];
    if(self) {
        qualities = [[NSDictionary alloc]init];
        thumbnail = [[NSImage alloc]init];
    }
    return self;
}


@end

当我加载它时,我的videoArray是(null)吗?!我还是不明白。顺便说一句,videoArray是一个NSMutableArray,而不是NSArray。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-25 00:43:54

在您的代码中,您将NSData写入NSCoder,因此您需要读取NSData,然后将其转换为数组。

代码语言:javascript
复制
NSURL *appSupportDir = [[NSFileManager defaultManager] URLForDirectory:NSApplicationSupportDirectory inDomain:NSUserDomainMask appropriateForURL:nil create:YES error:&error];
NSString *path = [NSString stringWithFormat:@"%@/DEConvert.dat",[appSupportDir path]];
NSLog(@"%@",appSupportDir);
NSData *data = [NSData dataWithContentsOfFile:path];
NSMutableArray *arr = [NSKeyedUnarchiver unarchiveObjectWithData:data];

在NSUserDefault中存储对象

代码语言:javascript
复制
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:arr];
[[NSUserDefaults standardUserDefaults] setObject:data forKey:@"your key"];

解压也很简单:

代码语言:javascript
复制
NSData *NewData = [[NSUserDefaults standardUserDefaults] objectForKey:@"your key"];
NSArray *arr = [NSKeyedUnarchiver unarchiveObjectWithData:NewData];
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15600942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档