Ios 网络请求和响应将保留在内存中

Ios 网络请求和响应将保留在内存中,ios,objective-c,afnetworking,memory-dump,Ios,Objective C,Afnetworking,Memory Dump,我使用AFNetworking作为我的基本网络课程。当我在越狱手机上进行内存转储时,我可以很容易地在转储文件中以纯文本形式查看请求URL或响应(如json对象)。我使用xcode中的泄漏工具进行了检查,并没有基于此的内存泄漏。我的应用在URL或响应中有敏感数据(如用户名、电子邮件地址…),我想在连接完成后立即清除这些信息 我尝试在应用程序中禁用NSURLCache: NSURLCache *sharedCache = [[NSURLCache alloc] initWithMemoryCapac

我使用AFNetworking作为我的基本网络课程。当我在越狱手机上进行内存转储时,我可以很容易地在转储文件中以纯文本形式查看请求URL或响应(如json对象)。我使用xcode中的泄漏工具进行了检查,并没有基于此的内存泄漏。我的应用在URL或响应中有敏感数据(如用户名、电子邮件地址…),我想在连接完成后立即清除这些信息

我尝试在应用程序中禁用NSURLCache:

NSURLCache *sharedCache = [[NSURLCache alloc] initWithMemoryCapacity:0
                                                        diskCapacity:0
                                                        diskPath:nil];
[NSURLCache setSharedURLCache:sharedCache];
我还尝试:

[[NSURLCache sharedURLCache] removeAllCachedResponses];

但这些都不管用。 有人知道怎么做吗?

你试过这个吗

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager.requestSerializer setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData];
此外,还需要从服务器端脚本的头响应中禁用缓存。如果是用PHP编写的:

<?php
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
?>

苹果很尊重响应标题。

你试过这个吗

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager.requestSerializer setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData];
此外,还需要从服务器端脚本的头响应中禁用缓存。如果是用PHP编写的:

<?php
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
?>


苹果尊重响应头。

如果你正在做内存转储,你会看到DeloDebug基础对象的剩余部分,因为它们不会在重新分配时擦除内存,所以它们一直保留到内存被重新使用。除了一些不使用基础类型之外,没有真正的一般解决方案。苹果不提供安全版本的
NSString
NSData
。请求一个安全的基础对象的bug报告:您应该考虑使用<代码> AFHTPSESSIONS管理器< /> >,使用SimeStase<<代码>使用<代码> <代码>。请参阅
NSURLSessionConfiguration
文档中的
ephemeralSessionConfiguration
参考。用户是否可以在越狱设备上查看自己的信息,您为什么会在意?他们选择破坏他们的设备的安全性。如果你正在做内存转储,你会看到DeloDebug基础对象的剩余部分,因为它们不会在重新分配时擦除内存,所以它们一直保留到内存被重新使用。除了一些不使用基础类型之外,没有真正的一般解决方案。苹果不提供安全版本的
NSString
NSData
。请求一个安全的基础对象的bug报告:您应该考虑使用<代码> AFHTPSESSIONS管理器< /> >,使用SimeStase<<代码>使用<代码> <代码>。请参阅
NSURLSessionConfiguration
文档中的
ephemeralSessionConfiguration
参考。用户是否可以在越狱设备上查看自己的信息,您为什么会在意?他们选择破坏他们的设备的安全性。如果你正在做内存转储,你会看到DeloDebug基础对象的剩余部分,因为它们不会在重新分配时擦除内存,所以它们一直保留到内存被重新使用。除了一些不使用基础类型之外,没有真正的一般解决方案。苹果不提供安全版本的
NSString
NSData
。请求一个安全的基础对象的bug报告:您应该考虑使用<代码> AFHTPSESSIONS管理器< /> >,使用SimeStase<<代码>使用<代码> <代码>。请参阅
NSURLSessionConfiguration
文档中的
ephemeralSessionConfiguration
参考。用户是否可以在越狱设备上查看自己的信息,您为什么会在意?他们选择破坏设备的安全性。感谢您的回复。很遗憾,这对我不起作用。谢谢你的回复。很遗憾,这对我不起作用。谢谢你的回复。不幸的是,这对我不起作用。