I am making a custom `UITableViewDataSource` and when I am assigning that datasource to the TableView I get the following error: 

> 
> "Assigning retained object to unsafe property; object will be released after assignment"
> 
> 
> 

Here is my code which causes the **ERROR**: 

```
 self.tableView.dataSource = [[ShoppingListDataSource alloc] initWithItems:_shoppingLists identifier:@"ShoppingListTableViewCell" configureCellBlock:^(ShoppingListTableViewCell *cell, ShoppingList *shoppingList) {

        [cell configure:shoppingList];

    }];

```

ShoppingListDataSource.h: 

```
@import UIKit;

typedef void (^ConfigureCellBlock) (ShoppingListTableViewCell *cell, ShoppingList *shoppingList);

@interface ShoppingListDataSource : NSObject<UITableViewDataSource>

-(instancetype) initWithItems:(NSArray *) items identifier:(NSString *) identifier configureCellBlock:(ConfigureCellBlock) configureCellBlock;

@property (nonatomic,strong) NSArray *items;
@property (nonatomic,copy) NSString *identifier;
@property (nonatomic,copy) ConfigureCellBlock configureCellBlock;

@end

```

ShoppingListDataSource.m: 

```
-(instancetype) initWithItems:(NSArray *)items identifier:(NSString *)identifier configureCellBlock:(ConfigureCellBlock)configureCellBlock
{
    self = [super init];

    self.identifier = identifier;
    self.items = items;
    self.configureCellBlock = configureCellBlock;

    return self;
}

```

My view controller inherits from UITableViewController.