【发布时间】:2012-10-10 00:54:55
【问题描述】:
据我所知,我有一段代码应该可以正常工作,但不是:
NSMutableDictionary* videos = [NSMutableDictionary dictionary];
VideoObject* localVideo = [VideoObject videoObject];
localVideo.assetURL = url;//trust me it's set
localVideo.localThumbPath = finalPath;
videoData = [NSKeyedArchiver archivedDataWithRootObject:localVideo];
[videos setObject:videoData forKey:localVideo.assetURL];
if(![videos writeToURL:[NSURL URLWithString:self.cacheFilePath] atomically:YES]){
NSLog(@"pretest videos:%@\
data:%@\
class of key:%@ class of value:%@",videos,videoData,NSStringFromClass([localVideo.assetURL class]),NSStringFromClass([videos[localVideo.assetURL] class]));
}
我已经在 VideoObject 类中设置了所有编码内容。 lovalVideo.assetURL 是类型 NSString。一切看起来对我来说都应该完美无缺,但它总是在 writeToURL 上返回 NO。这是我从日志中得到的输出:
预测试视频:{ “http://example.org/test.mov”=; } 数据: key 类:__NSCFString 类 值:NSConcreteMutableData
所以 key 和 value 都是有效的类型。实际上,我之前已经用一个空字典初始化了那个 cacheFile,所以我知道我可以在那里写。
有什么想法吗?
【问题讨论】:
标签: objective-c ios nsmutabledictionary nskeyedarchiver writetofile