現在カレンダーの日付をタップするとその日付のセルの色を変更させるプログラムを組んでいます。
セルをタップするとNSMutableArrayIndexPathを入れていき、cellForItemAtIndexPathでそのNSMutableArrayにあるIndexPathのセルの色を変更しています。以下のような感じです。(ちなみにセルをタップすると一度別の画面に遷移する仕様になっています。)

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
    CalendarCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"cell" forIndexPath:indexPath];

    if (self.isCellSelected) {

        NSLog(@"%@", self.dateArray);

        if (self.dateArray.count != 0) {
            for (NSNumber *item in self.dateArray) {

                if (indexPath.row == [item intValue]) {
                    cell.backgroundColor = [UIColor redColor];
                }
            }
        }
    }

しかし、1つのセルの色は変更できるのですが、2つ以上のセルの色を変更しようとするとif (indexPath.row == [item intValue])の行で[__NSCFArray intValue]: unrecognized selector sent to instanceというエラーが返ってきてしまいます。...そもそもNSCFArrayってなんなのでしょうか?
エラーが出た後、上記のコードのNSLogの箇所でIndexPathを格納したNSMutableArrayのログをとってみると、以下のようになります。

(
    (
    15
  ),
  16
)

NSMutableArrayの使い方が間違っているのでしょうか?
保存は値の保存は以下のようにしています。

NSMutableArray *array = [[NSMutableArray alloc] initWithObjects:[ud arrayForKey:@"array"], nil];
[array addObject:[NSNumber numberWithInt:self.selectedIndexPath]];

色々と調べたりしたもののどこが間違っているのかがわかりません。
どなたか分かる方がいれば教えていただきたいです。すみませんが、よろしくお願いします。