对象c内存alloc IOS 7

对象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分

我在一个周期内使用RNDecryptor+时遇到内存不足的问题,因为我调用此方法es:

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问题解决了。