Usuwanie komórek z UICollectionView za pośrednictwem NSNotification

Mam prostą aplikację opartą na UICollectionView - jeden model UICollectionView i model danych oparty na NSMutableArray dla uproszczenia.

Mogę usunąć komórki bez problemu za pomocą metody didSelectItemAtIndexPath: delegate:

-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{
    [self.data removeObjectAtIndex:[indexPath row]];
    [self.collectionView deleteItemsAtIndexPaths:@[indexPath]];
}

Próbuję jednak dodać opcję usuwania przez aUIMenuController wUICollectionViewCell podklasa, która jest uruchamiana przez aUILongPressGestureRecognizer które działają dobrze i pomyślnie uruchomięNSNotification

-(void)delete:(id)sender{
      NSLog(@"Sending deleteme message");
      [[NSNotificationCenter defaultCenter] postNotificationName:@"DeleteMe!" object:self userInfo:nil];
}

Łapię to w moim ViewControllerze i wywołuję następującą metodę:

-(void)deleteCell:(NSNotification*)note{
       MyCollectionViewCell *cell = [note object];
       NSIndexPath *path = nil;
       if((path = [self.collectionView indexPathForCell:cell]) != nil){
           [self.data removeObjectAtIndex:[path row]];
           [self.collectionView deleteItemsAtIndexPaths:@[path]];
       }
}

A zawiesza się w wywołaniu deleteItemsAtIndexPaths: call

-[UICollectionViewUpdateItem action]: unrecognized selector sent to instance 0xee7eb10

Sprawdziłem wszystko, co oczywiste - jak obiekt z NSNotification i indexPath utworzony z indexPathForCell: wywołanie i wszystko wydaje się całkowicie w porządku. Wygląda na to, że wywołuję deleteItemsAtIndexPath: z tymi samymi informacjami w obu miejscach, ale z jakiegoś powodu zawodzi, gdy przechodzi przez trasę powiadomienia.

To jest informacja pod adresem podanym w błędzie:

(lldb) po 0xee7eb10
(int) $1 = 250080016 <UICollectionViewUpdateItem: 0xee7eb10> index path before update (<NSIndexPath 0x9283a20> 2 indexes [0, 0]) index path after update ((null)) action (delete)

Być może znacząca ścieżka do indeksu po aktualizacji jest zerowa ...

Jakieś pomysły?

questionAnswers(3)

yourAnswerToTheQuestion