对象c内存alloc IOS 7
我在一个周期内使用RNDecryptor+时遇到内存不足的问题,因为我调用此方法es:对象c内存alloc IOS 7,ios,objective-c,memory,memory-leaks,alloc,Ios,Objective C,Memory,Memory Leaks,Alloc,我在一个周期内使用RNDecryptor+时遇到内存不足的问题,因为我调用此方法es: for (int i=0; i < [datasource fileCount]; i++) { ... datacrypto = [RNDecryptor decryptData:datacrypto withSettings:kRNCryptorAES256Settings password:passcode error:nil]; .... } RNDecryptor分
for (int i=0; i < [datasource fileCount]; i++) {
...
datacrypto = [RNDecryptor decryptData:datacrypto withSettings:kRNCryptorAES256Settings password:passcode error:nil];
....
}
RNDecryptor分配内存,但调用不会为空,并且迟早不会有更多可用内存和崩溃。。。它可能在调用之间释放+[RNDecriptor…],或者作为解决方案
谢谢。下面是该方法的实现
+ (NSData *)decryptData:(NSData *)theCipherText withSettings:(RNCryptorSettings)settings password:(NSString *)aPassword error:(NSError **)anError
{
RNDecryptor *cryptor = [[self alloc] initWithPassword:aPassword
handler:^(RNCryptor *c, NSData *d) {}];
cryptor.settings = settings;
return [self synchronousResultForCryptor:cryptor data:theCipherText error:anError];
}
它不是单身汉,或者有其他分支吗?如果没有,最好实现自己的单例模式。好的,没有正确的解密数据,它不是单例模式!我已通过:@autoreleasepool{//创建自动删除对象的代码。}再见。问题可能是您试图解密内存中的太多数据。您如何处理从该方法获得的NSData?然后:[datacrypto WriteFile:[NSString stringWithFormat:@%@%@,NSTemporaryDirectory,fileName]原子化:是]。。。我已经解决了:@autoreleasepool{//创建自动删除对象的代码。}再见。@Marino……你大概知道为什么这会解决问题了吧?或者一个答案仍然有用,不管你已经知道修复方法吗?@Tommy问题解决了。