I have severals leaks and don´t know how to solve it, I am using ARC.
Could someone explain me what is wrong?
The issue is with the NSNumbers contained in the NSDictionaries that are in theNSArray.
#import "SimpleOperation.h"
#import "AppDelegate.h"
#import "Model+Create.h"
@interface SimpleOperation()
@property(nonatomic, strong) NSNumber * max_id;
@end
@implementation SimpleOperation
- (void)main{
@autoreleasepool {
[self executeFetchWithMax_id:self.max_id];
}
}
- (instancetype)initWithMax_id:(NSNumber*)max_id{
if (self = [super init]){
_max_id = max_id;
}
return self;
}
- (void)executeFetchWithMax_id:(NSNumber*)max_id{
__block NSManagedObjectContext *managedObjectContext = [(AppDelegate *)[[UIApplication sharedApplication] delegate] managedObjectContext];
__block NSManagedObjectContext *writerManagedObjectContext = [(AppDelegate *)[[UIApplication sharedApplication] delegate] writerManagedObjectContext];
__block NSManagedObjectContext *temporaryContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSPrivateQueueConcurrencyType];
temporaryContext.parentContext = managedObjectContext;
temporaryContext.undoManager = nil;
__block Model *model = nil;
[temporaryContext performBlock:^{
NSArray *statuses= @[@{@"id": @648186162016854016}, @{@"id": @648186162016854017}, @{@"id": @648186162016854018}, @{@"id": @648186162016854019}];
for(NSDictionary *statusDictionary in statuses){
model = [Model modelWithInfo:statusDictionary inManagedObjectContext:temporaryContext];
}
NSError *error = nil;
if (![temporaryContext save:&error]){
abort();
}
[managedObjectContext performBlock:^{
NSError *error = nil;
if (![managedObjectContext save:&error]){
abort();
}
[writerManagedObjectContext performBlock:^{
NSError *error = nil;
if (![writerManagedObjectContext save:&error]){
abort();
}
}];
}];
}];
}
@end