【发布时间】:2013-03-24 16:24:26
【问题描述】:
编辑:好的,我决定将数组保存在 userDefaults... 应该很容易,对吧? 保存:
NSUserDefaults *userDefs = [NSUserDefaults standardUserDefaults];
[userDefs setObject:videoArray forKey:@"dataArray"];
[userDefs synchronize];
加载:
NSUserDefaults *userDefs = [NSUserDefaults standardUserDefaults];
videoArray = [[NSUserDefaults standardUserDefaults] mutableArrayValueForKey:@"dataArray"];
[tableview reloadData];
NSLog(@"%@",videoArray);
数组中对象的类别:
@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。
【问题讨论】:
-
encodeWithcoder 方法被调用了吗?
-
啊,我明白了,encodeWithCoder 没有被调用。我错过了什么 ?在我的 .h 中,我实现了
-
旁注:您是否创建了
NSApplicationSupportDirectory?应用沙箱中默认不存在该目录。此外,不要使用字符串格式来创建路径。使用NSString *path = [appSupportDir stringByAppendingPathComponent:@"DEConvert.dat"]; -
嗯好的,我将更改获取路径的方式,但文件保存在此目录中。 (目前我的应用没有沙盒)
-
@DavidEhlen 抱歉,关于目录不存在的评论适用于 iOS,而不适用于 OSX。请忽略那部分。
标签: objective-c cocoa nsmutablearray nscoding