私が知る限り、正常に動作するはずのコードがありますが、そうではありません:
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 クラスですべてのエンコーディングをセットアップしました。lovelVideo.assetURL は NSString 型です。すべてが完全に機能するように見えますが、writeToURL では常に NO が返されます。ログから取得した出力は次のとおりです。
00300000 00000000 00000000 00000000 0272>; データ:<
したがって、キーと値の両方が有効な型です。私は実際にその cacheFile を空の辞書で初期化しているので、そこに書き込むことができます。
何か案は?