«используется значение типа структуры, где требуется скаляр» в .layer.position - PullRequest
0 голосов
/ 09 октября 2010

Я хочу сделать выбор, прежде чем применить одну из двух анимаций, как я думал: создать точку one, если мой myImageView находится в точке one, затем применить animationNo1, иначе применить animationNo2, но я получил это: «используется значение типа структуры, где требуется скаляр», в строке if (myImageView.layer.position = one)

Что я делаю?Как я могу это исправить?Кто-нибудь знает точно, что делает проблему?

 CGPoint one = CGPointMake(myImageView.layer.position.x, 100);

 if (myImageView.layer.position = one) 
 {
       animationNo1
 }

 else 
 {
       animationNo2
 }

Ответы [ 3 ]

4 голосов
/ 09 октября 2010

Прежде всего, ваше if-утверждение не будет делать то, что вы думаете. Если вы хотите сравнить что-то, вы должны использовать == (т.е. 2 =)

и вы не можете сравнивать CGPoints следующим образом.

использовать

 if (CGPointEqualToPoint(one, self.view.layer.position))
2 голосов
/ 09 октября 2010

if (myImageView.layer.position = one) { animationNo1 }

должно быть

if (CGPointIsEqualToPoint(myImageView.layer.position, one)) { animationNo1 }

Для сравнения вы использовали одно значение =, а не ==.Но == в любом случае не будет делать то, что вы хотели здесь.

1 голос
/ 09 октября 2010

Вы передаете структуру (в этом случае) вместо скаляра.Чтобы сделать то, что вы хотите, вам нужно использовать CGPointIsEqualToPoint:

if (CGPointEqualToPoint(one, self.view.layer.position))

Полный код с исправлениями:

CGPoint one = CGPointMake(myImageView.layer.position.x, 100);

if (CGPointEqualToPoint(one, self.view.layer.position))
{
      animationNo1
}

else 
{
      animationNo2
}

Кроме того, как указали другие: будьте осторожны с = vs ==.Они разные.В этом случае вы, к счастью, не используете == для сравнения, но если вы используете = для других вещей, это сделает его истинным, вместо того, чтобы проверять, верно ли это.

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