我想将NSDictionary对象写入缓存,并且还希望将其从缓存中删除。在这里我把它存放到chache但不能从chache中删除
-(void) storeDictionary:(NSMutableDictionary *) dictionaryToStore strDictionaryName:(NSString *) strDictionaryName
{
//get the documents directory:
NSArray *paths = NSSearchPathForDirectoriesInDomains
(NSCachesDirectory, NSUserDomainMask, YES);
NSString *cacheDirectory = [paths objectAtIndex:0];
//make a file name to write the data to using the
//cache directory:
NSString *fullFileName = [NSString stringWithFormat:@"%@/%@", cacheDirectory,strDictionaryName];
if (dictionaryToStore != nil) {
[dictionaryToStore writeToFile:fullFileName atomically:YES];
}
}
帮助将其从缓存中删除。
答案 0 :(得分:0)
以下是删除缓存文件夹中文件的一些粗略代码,假设您的代码中显示了名为fullFileName
的文件路径。
NSFileManager *fileManager = [NSFileManager defaultManager];
BOOL fileExist = [fileManager fileExistsAtPath:fullFileName];
if (fileExist) {
NSError *error;
BOOL ok = [fileManager removeItemAtPath:fullFileName error:&error];
NSLog(@"remove %d",ok);
if (error) {
NSLog(@"error is %@", error.description);
}
}
答案 1 :(得分:-1)
如果您只想将其写入缓存。 NSCache 可能是最好和最方便的方法。
以下是链接:https://developer.apple.com/library/ios/documentation/Cocoa/Reference/NSCache_Class/index.html
但是,如果你想要完全操纵。你可能会坚持你正在做的事情。您只需在要删除时删除整体,并在想要更新时将其覆盖。因为 NSCache 将由系统处理。当系统没有足够的内存时,它可能会清除您的数据,因此您每次要访问它时都必须进行检查。这真的取决于你想要的东西。