我已经将可变数组分配为:
self.allisonHall.hours = [[NSMutableArray alloc] initWithCapacity:7];
并填充数据:
self.allisonHall.hours = @[
@[
@[@600,@780],
@[@1005,@1170]
],
@[
@[@450,@585],
@[@705,@795],
@[@1005,@1140]
],
@[
@[@450,@585],
@[@705,@795],
@[@1005,@1140]
],
@[
@[@450,@585],
@[@705,@795],
@[@1005,@1140]
],
@[
@[@450,@585],
@[@705,@795],
@[@1005,@1140]
],
@[
@[@450,@585],
@[@705,@795],
@[@1005,@1140]
],
@[
@[@645,@810],
@[@1005,@1170]
],
];
当我尝试使用代码访问元素时 int open = _hours [0] [i] [0];
或
int open = _hours[0][i][1];
其中i为2或3(取决于7个父数组中每个数组中的对象数,open被指定为146980960,显然是内存地址。调试时,命令
po open
导致600,450等 - 所有正确的数组值。 但是,当我稍后在函数中执行不等式时,它们无法按预期解析,因为在范围内open是146980960.
为什么" po"在函数中以这种方式不存在时,按预期打印变量? 我该如何解决?
由于
答案 0 :(得分:2)
获取指针而不是值的原因是因为您将NSNumber
而不是实际值传递给数组。换句话说,open
应该是NSNumber
,您可以使用其中一种方法(例如intValue
)来获取实际值。希望这有帮助!