Синтаксическая ошибка Obj-C в операторе if ... Почему? - PullRequest
2 голосов
/ 10 мая 2009

НАСТОЯЩИЙ новичок в Objective C и Какао.

У меня есть это «если заявление»

if (cardCount = 2)
   UIImage *image = [UIImage imageNamed: @"Card 2.png"];

Это дает мне "error: синтаксическая ошибка перед '*' токеном"

Почему? Линия UIImage отлично работает сама по себе.

Буду признателен за указание на то, что я сделал неправильно.

Спасибо Пол

1 Ответ

14 голосов
/ 10 мая 2009

Прежде всего, условие должно читаться как cardCount == 2, но это не является причиной этой ошибки. Проблема в том, что объявление и инициализация переменной не учитываются как оператор в грамматике языка. Это декларация. Вы не можете иметь объявление как тело из if, while и т. Д. (Кстати, блок считается оператором, который может содержать объявления, так что это совсем другое) В конце концов, это бесполезно, так как он сразу же выйдет из области видимости, и это будет запрещено.

UIImage *image;
if (cardCount == 2)
   image = [UIImage imageNamed: @"Card 2.png"];

Если вам просто нужна эта переменная в операторе if (я сомневаюсь, что это то, что вы хотите):

if (cardCount == 2) {
   UIImage* image = [UIImage imageNamed: @"Card 2.png"];
   // code to use `image`
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...