[英]replace object in mutable array
这应该很容易,可能我只是想念一件事:我有一个名为defaultImages的图像数组
NSMutableArray *defaultLetters;
然后添加所需的字母(数组长度为42)
稍后,我尝试用另一个图像替换数组中的一个图像。 像这样:
[defaultLetters replaceObjectAtIndex:0 withObject:croppedPhoto];
但我收到一条错误消息:“-[__ NSArrayI replaceObjectAtIndex:withObject:]:无法识别的选择器已发送到实例0x180ae190”,我是否缺少步骤?
您将NSArray
对象分配给defaultLetters
,而不是NSMutableArray
。
__NSArrayI
是NSArray的私有子类。 I
代表一成不变。
请参阅什么是__NSArrayI和__NSArrayM? 如何转换为NSArray?
如果您不能确定到底是分配的NSArray还是NSMutableArray,则可以随时进行测试。
if(![defaultLetters respondsToSelector:@selector(replaceObjectAtIndex:withObject:)]){
defaultLetters = [defaultLetters mutableCopy];
}
但这可能表明代码中存在体系结构问题,因为您应该确定要处理的对象。
我想你这样分配价值
defaultLetters = anotherMutableArray;
如果您这样做,请按照以下说明进行更换。
defaultLetters = [anotherMutableArray mutableCopy];
您可以替换该数组中的对象
[defaultLetters replaceObjectAtIndex:0 withObject:croppedPhoto];
尝试一下。由于直接分配,您无法插入或删除。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.