From 7de2decdcb79cf6df2b3f4d2be9d296291314c2f Mon Sep 17 00:00:00 2001 From: Adlai Holler Date: Wed, 7 Dec 2016 13:36:15 -0800 Subject: [PATCH] Allow section-indexpaths in collection & table validation (#2727) --- AsyncDisplayKit/ASCollectionView.mm | 4 +++- AsyncDisplayKit/ASTableView.mm | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/AsyncDisplayKit/ASCollectionView.mm b/AsyncDisplayKit/ASCollectionView.mm index 082832d66d..e0dc28f6b0 100644 --- a/AsyncDisplayKit/ASCollectionView.mm +++ b/AsyncDisplayKit/ASCollectionView.mm @@ -642,7 +642,9 @@ static NSString * const kCellReuseIdentifier = @"_ASCollectionViewCell"; return nil; } - if (indexPath.item >= [self numberOfItemsInSection:section]) { + NSInteger item = indexPath.item; + // item == NSNotFound means e.g. "scroll to this section" and is acceptable + if (item != NSNotFound && item >= [self numberOfItemsInSection:section]) { ASDisplayNodeFailAssert(@"Collection view index path has invalid item %lu in section %lu, item count = %lu", (unsigned long)indexPath.item, (unsigned long)section, (unsigned long)[self numberOfItemsInSection:section]); return nil; } diff --git a/AsyncDisplayKit/ASTableView.mm b/AsyncDisplayKit/ASTableView.mm index cdd36fa9e8..60bf5df05b 100644 --- a/AsyncDisplayKit/ASTableView.mm +++ b/AsyncDisplayKit/ASTableView.mm @@ -579,7 +579,9 @@ static NSString * const kCellReuseIdentifier = @"_ASTableViewCell"; return nil; } - if (indexPath.item >= [self numberOfRowsInSection:section]) { + NSInteger item = indexPath.item; + // item == NSNotFound means e.g. "scroll to this section" and is acceptable + if (item != NSNotFound && item >= [self numberOfRowsInSection:section]) { ASDisplayNodeFailAssert(@"Table view index path has invalid item %lu in section %lu, item count = %lu", (unsigned long)indexPath.item, (unsigned long)section, (unsigned long)[self numberOfRowsInSection:section]); return nil; }