diff --git a/AsyncDisplayKit/ASCollectionView.mm b/AsyncDisplayKit/ASCollectionView.mm index 074b2aa9d8..983b13aebd 100644 --- a/AsyncDisplayKit/ASCollectionView.mm +++ b/AsyncDisplayKit/ASCollectionView.mm @@ -959,7 +959,7 @@ static NSString * const kCellReuseIdentifier = @"_ASCollectionViewCell"; return ^{ __typeof__(self) strongSelf = weakSelf; - ASCellNode *node = block(); + ASCellNode *node = (block != nil ? block() : [[ASCellNode alloc] init]); [node enterHierarchyState:ASHierarchyStateRangeManaged]; if (node.interactionDelegate == nil) { node.interactionDelegate = strongSelf; diff --git a/AsyncDisplayKit/ASTableView.mm b/AsyncDisplayKit/ASTableView.mm index e2eeafb2e5..9f671f9ed1 100644 --- a/AsyncDisplayKit/ASTableView.mm +++ b/AsyncDisplayKit/ASTableView.mm @@ -1125,10 +1125,11 @@ static NSString * const kCellReuseIdentifier = @"_ASTableViewCell"; } ASCellNodeBlock block = [_asyncDataSource tableView:self nodeBlockForRowAtIndexPath:indexPath]; + ASDisplayNodeAssertNotNil(block, @"Invalid block, expected nonnull ASCellNodeBlock"); __weak __typeof__(self) weakSelf = self; ASCellNodeBlock configuredNodeBlock = ^{ __typeof__(self) strongSelf = weakSelf; - ASCellNode *node = block(); + ASCellNode *node = (block != nil ? block() : [[ASCellNode alloc] init]); [node enterHierarchyState:ASHierarchyStateRangeManaged]; if (node.interactionDelegate == nil) { node.interactionDelegate = strongSelf;