Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/95.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在iOS中清除JSON缓存?_Ios_Json_Caching - Fatal编程技术网

如何在iOS中清除JSON缓存?

如何在iOS中清除JSON缓存?,ios,json,caching,Ios,Json,Caching,我有一个从数据库中提取字符串的方法,我正在使用nodejs和mongodb。当我的应用程序拨打电话时,返回数据。但我的应用程序不会再次拨打相同的电话。例如,当我输入用户名:JohnDoe123时,我希望后端会发回一个与JohnDoe123相关联的ID,它确实会这样做。但我希望能够再次进行相同的查询,所以我是否需要以某种方式清除缓存 if ([jsonn objectForKey:@"success"]) { NSNumber* successful = [jsonn objectFor

我有一个从数据库中提取字符串的方法,我正在使用nodejs和mongodb。当我的应用程序拨打电话时,返回数据。但我的应用程序不会再次拨打相同的电话。例如,当我输入用户名:JohnDoe123时,我希望后端会发回一个与JohnDoe123相关联的ID,它确实会这样做。但我希望能够再次进行相同的查询,所以我是否需要以某种方式清除缓存

 if ([jsonn objectForKey:@"success"]) {
    NSNumber* successful = [jsonn objectForKey:@"success"];
    if ([successful boolValue]) {
        NSString* idforpic = (NSString*)[jsonn objectForKey:@"idforpic"];
        NSLog(@"idforpic: %@", idforpic);
        NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
        [defaults setObject:idforpic forKey:@"CURRENTPICID"];
        if (idforpic != nil) {
        picView = [[ProfilePicViewController alloc] initWithId:idforpic];
        [picView.view setFrame:CGRectMake(0, self.view.frame.size.height / 3, self.view.frame.size.width, 150)];
        [picView setImageUsingId:idforpic];
        [self addChildViewController:picView];
        [self.view addSubview:picView.view];
            removePicView = [NSTimer scheduledTimerWithTimeInterval:5.0 target:self selector:@selector(removeProfilePicViewController) userInfo:nil repeats:NO];
        }
    }
}

基本上,我需要能够运行ifidforpic!=无多次

没有JSON缓存。但是,您的设备及其与服务器之间的任何路由器可能都有缓存,因此发送的任何相同请求都可能产生旧值而不是新值。有没有办法产生新值?有办法告诉设备清除缓存。您还可以在请求中添加一个标志,告诉路由器不要缓存响应,尽管很难猜测该标志的执行情况。唯一合理可靠的方法是永远不要发出相同的请求两次。假设您的请求是针对JohnDoe123的,那么该值就在请求的某个地方。