我正在使用此代码从服务器中提取一个简单的JSON提要:
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.responseSerializer = [AFJSONResponseSerializer serializer];
[manager GET:kDataUrl parameters:nil
success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"response: %@", responseObject);
}
failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"JSON DataError: %@", error);
}];
Run Code Online (Sandbox Code Playgroud)
有用.但是,在我更改kDataUrl上的JSON文件并验证是否在浏览器中进行了更改后,当我再次运行应用程序时,我仍然得到之前的响应.
似乎AFNetworking以某种方式缓存了旧的响应.我不想要这种行为.我想下载当前的Feed.是否需要设置一些设置或参数来关闭缓存?
大家好,任何人都可以帮我解决如何清除AFNetworking中的缓存.
我曾经有旧版本的AFNetworking,我看到它已经更新,任何机构都可以帮我解决如何清理AFnetworking的缓存.
以前它是这样的
SDImageCache *imageCache = [SDImageCache sharedImageCache];
[imageCache clearMemory];
[imageCache clearDisk];
[imageCache cleanDisk];
Run Code Online (Sandbox Code Playgroud) 我正在处理的应用程序遇到了一个我无法重现的非常奇怪的崩溃,我所知道的唯一信息是来自Crashlytics.它只发生在ios7和谷歌搜索mmapFileDeallocate返回一个网站,其他人遇到相同的崩溃,但他们的问题消失了os更新.
这是堆栈:
Thread : Crashed: tcpConnWorkQueue
0 libobjc.A.dylib 0x3aa00b36 objc_msgSend + 21
1 CFNetwork 0x2fece4c3 __CFURLCache::removeMMappedDataFromSet(void*) + 34
2 CFNetwork 0x2fecfa45 mmapFileDeallocate(void*, void*) + 24
3 CoreFoundation 0x3024ef5f __CFDataDeallocate + 30
4 CoreFoundation 0x301c75f7 CFRelease + 462
5 CoreFoundation 0x3023fed5 __CFArrayReleaseValues + 292
6 CoreFoundation 0x301c75f7 CFRelease + 462
7 CFNetwork 0x2fe5f1d5 __CFCachedURLResponse::~__CFCachedURLResponse() + 40
8 CFNetwork 0x2fe5f19f __CFCachedURLResponse::~__CFCachedURLResponse() + 10
9 CoreFoundation 0x301c75f7 CFRelease + 462
10 CFNetwork 0x2feaeda1 HTTPProtocol::~HTTPProtocol() + 732
11 CoreFoundation 0x301c75f7 CFRelease + 462
12 …Run Code Online (Sandbox Code Playgroud) 我有一个情况,我使用AFNetworking的rest API从我们的后端检索特定资源(GET请求).当我用浏览器检查后端时结果是165但是在一个特定设备(一个特定的iPhone 6 plus)中,结果是5,在任何其他设备中我检索165正确的答案.我认为有些东西在这个设备上缓存了结果但是在这个特定设备上没有发现任何东西.
我删除了应用程序并再次安装它,它再次工作错误,所以NSURLCache也不是问题
我用来从后端检索数据的代码,它适用于任何其他设备,它不适用于该特定设备.(顺便说一句,我使用相同的用户名和密码来检查所有设备和浏览器)所以情况并非如此.
AFHTTPRequestOperationManager* manager = [AFHTTPRequestOperationManager manager];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
[manager.requestSerializer setValue:[[NSUserDefaults standardUserDefaults] valueForKey:TOKEN_ID_KEY] forHTTPHeaderField:TOKEN_HTTP_HEADER_NAME];
[manager GET:[NSString stringWithFormat:@"%@%@", BASE_URL, PROFILE_URL] parameters:nil success:^(AFHTTPRequestOperation* operation, id responseObject) {
NSLog(@"profile info request accepted with response : %@",responseObject);
profile = [[Profile alloc] initWithDictionary:responseObject];
[self.tableView reloadData];
} failure:^(AFHTTPRequestOperation* operation, NSError* error) {
NSLog(@"profile info request failed with eroor : %@" , [error localizedDescription]) ;
}];
Run Code Online (Sandbox Code Playgroud)