現在カレンダーの日付をタップするとその日付のセルの色を変更させるプログラムを組んでいます。
セルをタップするとNSMutableArray
にIndexPath
を入れていき、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]];
色々と調べたりしたもののどこが間違っているのかがわかりません。
どなたか分かる方がいれば教えていただきたいです。すみませんが、よろしくお願いします。