suM*_*uMi 1 arrays objective-c nsmutablearray
这应该是相当容易的,可能我只是遗漏了一件小事:我有一个名为defaultImages的图像数组
NSMutableArray *defaultLetters;
Run Code Online (Sandbox Code Playgroud)
然后我添加所需的字母(数组长度然后是42)
后来我试图用另一个图像替换阵列中的一个图像.像这样:
[defaultLetters replaceObjectAtIndex:0 withObject:croppedPhoto];
Run Code Online (Sandbox Code Playgroud)
但我得到一个错误说:" - [__ NSArrayI replaceObjectAtIndex:withObject:]:无法识别的选择器发送到实例0x180ae190"是否有一个我缺少的步骤?
你分配了一个NSArray对象defaultLetters,而不是一个NSMutableArray.
__NSArrayI是NSArray的私有子类.该I代表不可改变的.
看什么是__NSArrayI和__NSArrayM?如何转换为NSArray?
如果你无法确定,如果它是你正在分配的NSArray或NSMutableArray,你可以随时测试.
if(![defaultLetters respondsToSelector:@selector(replaceObjectAtIndex:withObject:)]){
defaultLetters = [defaultLetters mutableCopy];
}
Run Code Online (Sandbox Code Playgroud)
但这可能表明代码中存在架构问题,因为您应该知道您正在处理哪些对象.
我认为你这样分配价值
defaultLetters = anotherMutableArray;
Run Code Online (Sandbox Code Playgroud)
如果您喜欢这个,请更换如下..
defaultLetters = [anotherMutableArray mutableCopy];
Run Code Online (Sandbox Code Playgroud)
您可以替换该数组中的对象
[defaultLetters replaceObjectAtIndex:0 withObject:croppedPhoto];
Run Code Online (Sandbox Code Playgroud)
试试这个..因为如果你直接指定你不能插入或删除.
| 归档时间: |
|
| 查看次数: |
6345 次 |
| 最近记录: |