Сегодня, когда я печатал метод в моей Objective-C проекта, я исследовал эту строку:разница между указателями в C и Objective-C
card=self.cards[index];
где «карта» является указателем на экземпляр Мои класс «Карточка» (а Card - подкласс NSObject).
В C, если карта является указателем, этот синтаксис неверен, потому что я должен добавить символ '&' между '=' и именем массива.
Итак, почему это различие?
Является ли «self.cards [index]» псевдо-инструкцией метода, который возвращает указатель или нет?
Это решение, о котором я думал!
Спасибо всем!
Весь метод:
-(Card*) drawRandomCard{
Card *card=nil;
if ([self.cards count]) {
unsigned index= arc4random() % [self.cards count];
card=self.cards[index];
[self.cards removeObjectAtIndex:index];
}
return card;
}
Вы должны отредактировать свой вопрос; это немного запутанно. Я считаю, что ответ 'self.cards [index]' вызывает метод в 'NSArray', но сказать сложно, так как вы не говорите нам, что такое« карточки ». – Avi
Вы уверены, что 'cards' является указателем? Вы не вставляли его декларацию/определение, так что это немного сложно сказать. Но, как сказал @Avi, если это «NSArray», это немного изменило ситуацию. В противном случае это в значительной степени означает 'card = this.cards [index];' и там нет указателей. – Shark
Я сказал, что «карта» - это указатель на класс Карты. – ndPPPhz