将NSDictionary写入Cache并删除它

时间:2015-01-16 07:54:24

标签: ios objective-c

我想将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];
}
}

帮助将其从缓存中删除。

2 个答案:

答案 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 将由系统处理。当系统没有足够的内存时,它可能会清除您的数据,因此您每次要访问它时都必须进行检查。这真的取决于你想要的东西。