Pet*_*erK 9 iphone objective-c nsmutablearray
这可能是一个简单的问题,但有人能够在下面的场景中给我一个提示是什么错误,我只是不明白.我有一个NSMutableArray"playerArray",它有"ZERO","ONE","TWO","THREE"对象.
我试图删除"行"处的对象,但它不起作用.是不是因为它不会响应removeObjectAtIndex而返回一个不可变数组,因为异常似乎被抛出?
Run Code Online (Sandbox Code Playgroud)NSUInteger row = 1; // [indexPath row]; NSLog(@"playerArray:%@", playerArray); NSLog(@"row: %i", row); [playerArray removeObjectAtIndex:row];
结果是:
playerArray :(
ZERO,
ONE,
TWO,
THREE
)
2010-11-21 20:58:46.681 FamQuiz_v2 [2166:207] row:1
2010-11-21 20:58:46.682 FamQuiz_v2 [2166:207] - [__ NSArrayI removeObjectAtIndex :]:无法识别的选择器发送到实例0x5e3b9a0
2010-11-21 20:58:46.683 FamQuiz_v2 [2166:207] *由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:' - [__ NSArrayI removeObjectAtIndex:]:无法识别的选择器发送到实例0x5e3b9a0'
Tom*_*ift 20
看起来您的数组实际上不是NSMutableArray.通过记录类名来验证它:
NSLog(NSStringFromClass([playerArray class]));
Run Code Online (Sandbox Code Playgroud)
或者,检查:
if ([playerArray isKindOfClass: [NSMutableArray class]])
{
...
}
Run Code Online (Sandbox Code Playgroud)
错误消息表明playerArray是NSArray的实例,而不是NSMutableArray.您不能在NSArray的实例上调用removeObjectAtIndex.
-[__NSArrayI removeObjectAtIndex:]: unrecognized selector sent to instance
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13975 次 |
| 最近记录: |