Что делает этот код Objective C? - PullRequest
0 голосов
/ 21 августа 2011

Я учусь Цель 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];

Ответы [ 2 ]

7 голосов
/ 21 августа 2011

Этот код недействителен, он не сможет выполнить синтаксический анализ [self.anArray].

Квадратные скобки используются для вызова методов, но нет метода, который вы вызываете.Кажется, что вы хотите сделать NSInteger _nextIndex = (NSInteger)[self.anArray count];, который назначит _nextIndex количество элементов в массиве, которое является позицией следующего индекса.

Массив - это список элементов,начиная с 0. Итак, если в списке ничего нет, метод count вернет 0, что является первой позицией.Если список содержит 100 элементов, они будут использовать индексы от 0 до 99, тогда count вернет 100 и следующая позиция элемента будет 100.

3 голосов
/ 21 августа 2011

Вы указываете указатель, указывающий self.anArray на NSInteger.Другими словами, _nextIndex содержит адрес, по которому хранится self.anArray.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...