#iphone #objective-c #animation #if-statement #counter
#iPhone #objective-c #Анимация #if-оператор #счетчик
Вопрос:
У меня есть счетчик, который делает counter
каждый раз, когда одно изображение касается другого изображения.
Теперь то, что я хочу сделать, это: if counter=2; do something
, но я всегда получаю сообщение об ошибке:
Присваивание создает указатель из целого числа без приведения
Вот часть кода:
-(void)checkcollision {
if(CGRectIntersectsRect(flakeImage.frame, viewToRotate.frame)) {
counter ;
}
}
-(void)checknumber {
if(counter=2) {
viewToRotate.alpha=0;
}
}
Комментарии:
1. В этом случае счетчик также объявлен неправильно. Сделайте это int, а не указателем.
2. куда я должен поместить счетчик int; пожалуйста?
Ответ №1:
Возможно, ты делаешь это:
if (counter = 2) {
// Do something.
}
Это распространенная ошибка в if
инструкциях. Исправление было бы:
if (counter == 2) { // Note the "==", instead of "="
// Do something.
}
Хотя это всего лишь предположение — мне нужно было бы увидеть дополнительную информацию об ошибке или о том, что вы хотите сделать.
Редактировать
А — я видел ваш недавно опубликованный код, подтверждающий то, что я заявил выше. В вашем коде указано, что вы пытаетесь присвоить значение ‘2’ counter
в if
инструкции. Вы хотите, ==
чтобы это было проверкой на равенство.
Комментарии:
1. Хрустальный шар этого парня в огне! хороший ответ на плохой вопрос.
2. да, но когда я делаю этот xcode, скажи мне для той же строки: сравнение между указателем и целым числом
3. Вот почему вы пишете условные выражения в обратном порядке. if (2 == счетчик); компилятор обнаружит вашу ошибку, если вы опустите один из знаков равенства.
4. @Arvin: Ошибка сравнения указателя и целого числа означает, что вы определили свой
counter
как какой-тоid
тип. Найдите строку, в которой вы инициализируете счетчик, и убедитесь, что вы не используете*
с именем переменной. Это должно быть что-то вроде:NSInteger counter;
, НЕ :NSInteger *counter;
. Я не знаю, к какому типу относится вашаcounter
переменная, но если это что-то вродеint
илиNSInteger
, вам нужно знать, что это не указатели на объекты.