English 中文(简体)
到文件的对调
原标题:NSDictionary to File

我一直在研究SOAP网络服务,

当我试图将我的NSDdictionary 保存到一个文件时, 我发现一个错误( 因为它没有遵循属性列表结构), 我知道如何修正它 。

这是我的代码:

[self loadCache];
NSData *responseData;
NSMutableDictionary* dict = [_cache objectForKey:delegate.type];

if (dict != nil && [dict objectForKey:request.HTTPBody] != nil ) {
    responseData = [dict objectForKey:request.HTTPBody];
} else {
    NSHTTPURLResponse* urlResponse = nil; 
    NSError *error = [[NSError alloc] init];  
    responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponse error:&error];
    if (dict == nil) {
        dict = [[NSMutableDictionary alloc] init];
        [_cache setObject:dict forKey:delegate.type];
        [dict setObject:[NSNumber numberWithDouble:NSTimeIntervalSince1970] forKey:@"FECHA"];
    }
    if (responseData == nil) {
        responseData = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"test" ofType:@"xml"]];
    }
    NSLog(@"%@", [[request.HTTPBody copy] class]);
    [dict setObject:responseData forKey:request.HTTPBody];

    [self saveCache];
}

loadCache 函数 :

- (void)loadCache {
if (_loadedCache) return;
NSString* docsurl = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
docsurl = [docsurl stringByAppendingPathComponent:@"cache.txt"];
_cache = [[NSMutableDictionary alloc] initWithContentsOfFile:docsurl];
if (_cache == nil) _cache = [[NSMutableDictionary alloc] init];
}

保存缓存函数 :

- (void)saveCache {
NSString* docsurl = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
docsurl = [docsurl stringByAppendingPathComponent:@"cache.txt"];
if ([_cache writeToFile:docsurl atomically:YES]) {
    NSLog(@"SAVED");
} else {
    NSLog(@"ERROR");
}
}
最佳回答

正如评论所说:解决了!我想用NSData作为KEY, 它只能用作VALUE。

问题回答

NSData 无法成为“ 关键 ” 它只能成为“ 值 ”





相关问题
List Contents of Directory in a UITableView

I am trying to list the contents of Ringtones directory in a TableView, however, I am only getting the last file in the directory in ALL cells, instead of file per cell. This is my code: - (...

iPhone NSUserDefaults persistance difficulty

In my app i have a bunch of data i store in the NSUserdefaults. This information consists of an NSObject (Object1) with NSStrings and NSNumbers and also 2 instances of yet another object (Object2). ...

Writing a masked image to disk as a PNG file

Basically I m downloading images off of a webserver and then caching them to the disk, but before I do so I want to mask them. I m using the masking code everyone seems to point at which can be found ...

Resize UIImage with aspect ratio?

I m using this code to resize an image on the iPhone: CGRect screenRect = CGRectMake(0, 0, 320.0, 480.0); UIGraphicsBeginImageContext(screenRect.size); [value drawInRect:screenRect blendMode:...

Allowing interaction with a UIView under another UIView

Is there a simple way of allowing interaction with a button in a UIView that lies under another UIView - where there are no actual objects from the top UIView on top of the button? For instance, ...

热门标签