我正在学习Objective C.我得到了一个代码来修复我已修复但不完全确定发生了什么。有些人可以解释下面代码的作用。
//in header file there is this line
@property (retain) NSMutableArray *anArray;
// In implementation file in a method
self.anArray = [NSMutableArray array];
//This assigns a large value to index . What is this value. Does NSIteger needs initialization I think default is 0
NSInteger _nextIndex = (NSInteger)[self.anArray];
答案 0 :(得分:7)
该代码无效,无法解析[self.anArray]
。
方括号用于调用方法,但是没有方法可以调用。看起来你想要做的是NSInteger _nextIndex = (NSInteger)[self.anArray count];
,它将为_nextIndex
分配数组中元素的数量,这是下一个索引的位置。
数组是一个项目列表,从0开始。因此,如果列表没有任何内容,count
方法将返回0
,这是第一个位置。如果列表包含100个项目,则他们将使用0
到99
的索引,然后count
将返回100
,下一个项目位置将为100
答案 1 :(得分:3)
您将指向self.anArray
的指针强制转换为NSInteger
。换句话说,_nextIndex
包含self.anArray
存储的地址。