Can't remove an object from public mutable array (Objective-C)
该程序理论上应通过单击来加载带有图像的随机字符串。 这项工作正常,但我想添加一个从两个数组中删除当前对象的函数,因此我将所有数组和整数公开(对吗?),并为数组制作了可变副本。 然后我在底部写了三行,
No visible @interface for 'NSArray' declares the selector
'removeObjectAtIndex'
这是什么意思? 如何解决?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | #import"KotikViewController.h" @interface KotikViewController (){ NSArray *movieNames; NSArray *movieCovers; NSArray *movieNamesMutableCopie; NSArray *movieCoversMutableCopie; NSInteger yourRandomIndex; } @end @implementation KotikViewController - (IBAction)showNewMovie:(id)sender { movieNames =@[@"Побег из шаушенка", @"Бэтмен:Начало", @"Форрест Гамп"]; movieCovers= @[@"shawshank.jpg", @"batmanone.jpg", @"forrest.jpg"]; movieNamesMutableCopie=[movieNames mutableCopy]; movieCoversMutableCopie=[movieCovers mutableCopy]; //Setting a randomindex for movie yourRandomIndex = arc4random_uniform(movieNamesMutableCopie.count); //Getting imageName and movieName at randomIndex NSString* movieName= movieNamesMutableCopie[yourRandomIndex]; NSString* movieCover= movieCoversMutableCopie[yourRandomIndex]; //Setting ImageView image and movieName in a label from strings [_movieCover setImage:[UIImage imageNamed:movieCover]]; _movieName.text = movieName; ; } - (IBAction)alreadyWatched:(id)sender { [movieNamesMutableCopie removeObjectAtIndex:yourRandomIndex]; } @end |
您的私有变量(和公共变量?)应该像这样更改
1 2 3 4 | NSArray *movieNames; NSArray *movieCovers; NSMutableArray *movieNamesMutableCopie; NSMutableArray *movieCoversMutableCopie; |