我有一段代码,据我所知应该可以正常工作,但不是:
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。这是我从他的日志中得到的输出:
00300000 00000000 00000000 00000000 0272>; } 数据:<
所以 key 和 value 都是有效的类型。实际上,我之前已经用一个空字典初始化了那个 cacheFile,所以我知道我可以在那里写。
有任何想法吗?