First of all, use @autoreleasepool
here:
@autoreleasepool {
NSArray *data = [data objectForKey:@"data"];
if ([data count] > 0) {
// remove all objects to refresh with new ones
if ([type isEqualToString:@"pullToRefresh"]) {
[weakSelf.models removeAllObjects];
}
// populate data
NSMutableArray *result = [NSMutableArray new];
for (NSDictionary *modelData in data) {
MyModel *model = [[MyModel alloc] initWithDictionary:modelData];
[result addObject:model];
}
[weakSelf.models addObjectsFromArray:result];
[weakSelf.tableView reloadData];
}
}
@autoreleasepool
allows you to release every object allocated in that scope IMMEDIATELY.
This is perfect situation where use it ;)