我正在尝试使用 addObjectsFromArray 将两个数组“连接”在一起(可以这么说)。这是代码的概述:
NSArray *fixed = [NSArray arrayWithArray:timeline2];
NSLog(@"Made the temp successfully.Contents: %@", fixed);
[arrayOfNewsItems addObjectsFromArray:fixed];
Log语句可以确认“fixed”和“timeline2”数组中存在有效数据,并且在程序前面,我确认了“arrayOfNewsItems”数组中存在数据。
我在尝试 addObjects.. 后收到的异常是这样的:
'NSInternalInconsistencyException', reason: '-[__NSCFArray insertObject:atIndex:]: mutating method sent to immutable object'
arrayOfNewsItems 是一个 NSMutableArray。这是一个财产。实际上,它是这样声明的:
@property (nonatomic) NSMutableArray * arrayOfNewsItems;
也许这是“非原子”声明?我也不完全理解这些。
我唯一能想到的是每个数组中的数组元素具有不同的对象类型——或者更确切地说,虽然它们都是字典对象的数组,但对象本身由不同的键/值对列表组成。例如:
数组元素 1 可能包含:
(key) (value)
name Joe
title Mr.
并且数组元素 2 可能包含:
(key) (value)
phone 555-1263
shoeSize 2
现在,用任何其他语言,我永远不会尝试这个,但我很确定我在之前的帖子中被告知这样做是可以的。我知道objective-c将它们存储为(id),我们可以像这样将所有东西混合在一起。所以,问题是:
- 这是真的?
- 如果是这样,我错过了什么?
在我开始编写一个函数以使最终数组的所有字段名称相同之前,我会得到一个可靠的答案。
我当然会很感激我能得到的任何帮助!谢谢。