0
NSLog(@"Size of array: %i", ([HistoricDatesArray [23] count]));
HistoricDatesArray [23] = HistoricDatesArray [23][1];
NSLog(@"Size of array: %i", ([HistoricDatesArray [23] count]));

一旦第二个 NSLog 尝试执行:

由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[__NSCFString 计数]:无法识别的选择器发送到实例 0x728c7f0”

historyDatesArray 是一个 NSMutableArray。我可以读取(NSString)historyDatesArray[23] 的内容,但不能计算元素?

我不再需要 HistoricDatesArray[23][0] 处的对象,并想将 HistoricDatesArray[23][1] 处的对象分配给我测试并工作的 HistoricDatesArray[23],但为什么我不能使用“count”获取数组的大小?

如何将 2d NSMutableArray 转换回 1d NSMutableArray?

4

1 回答 1

0

我认为问题在于 HistoricDatesArray [23] 不再是一个数组。它目前持有一个字符串值并且它不会有 count 属性。这就是问题所在

第一行

HistoricDatesArray 索引 23 处的对象是一个数组,它的值为 [23][1] ,[23][2]...等

所以你将对计数操作有价值

NSLog(@"Size of array: %i", ([HistoricDatesArray [23] count]));

HistoricDatesArray [23][1] 的值是一个字符串。

第二行

HistoricDatesArray [23] = HistoricDatesArray [23][1];

在这里,您将数组索引 [23] 的值从数组更改为字符串。因此索引 [23] 处不再有数组。它表示字符串值

第三行

NSLog(@"Size of array: %i", ([HistoricDatesArray [23] count]));

尝试记录数组的计数属性,但索引 23 处的值只是一个字符串,因此崩溃

于 2013-05-21T05:25:03.367 回答