Objective c 目标C:将一个CG点分配给另一个不工作的CG点
我想做一些非常简单的事情Objective c 目标C:将一个CG点分配给另一个不工作的CG点,objective-c,cgpoint,Objective C,Cgpoint,我想做一些非常简单的事情 CGPoint newPlayerCoordinate = self.thePlayer.playerCoordinate; newPlayerCoordinate.x = newPlayerCoordinate.x + 1; self.thePlayer.playerCoordinate = newPlayerCoordinate; 代码编译,但是NSLog语句告诉我“self.thePlayer.playerCoordinate”从未正确更新,即使我将其设置为修改
CGPoint newPlayerCoordinate = self.thePlayer.playerCoordinate;
newPlayerCoordinate.x = newPlayerCoordinate.x + 1;
self.thePlayer.playerCoordinate = newPlayerCoordinate;
代码编译,但是NSLog
语句告诉我“self.thePlayer.playerCoordinate
”从未正确更新,即使我将其设置为修改后的CGPoint
我知道“
newPlayerCoordinate
”也通过使用`NSLog语句进行了正确更新。根据相关修订代码和评论进行了更新。保留答案以保留评论
最可能的问题是
self.thePlayer
是nil
。您需要为图层属性指定一个值。这里您要为一个CGPoint指定一个CGFloat:
newPlayerCoordinate = newPlayerCoordinate.x + 1;
改用这个:
newPlayerCoordinate = CGPointMake(newPlayerCoordinate.x + 1, newPlayerCoordinate.y);
非常感谢。我打字的时候把原来的问题搞糟了。第二行代码应该说:
“newPlayerCoordinate.x=newPlayerCoordinate.x+1”而不是原来的“newPlayerCoordinate=newPlayerCoordinate.x+1”
。我知道这改变了你的答案…是的,这是一个巨大的差异。读我答案的最后一行。你已经核实了吗?谢谢。我做了一个测试,它似乎是我自己。该层实际上是零!我不明白为什么。在我关联的头文件中,我将该对象作为属性包含:@property(强,非原子)PAplayerClass*thePlayer代码>我可能在这里遗漏了一些基本的东西,因为我对这一点非常陌生。您需要为thePlayer
属性指定一个值。天哪。我从未为对象分配内存。我想,因为我已经在必要的头文件中将它定义为一个属性,所以我可以继续了。前面还有很长一段路……你为我指明了正确的方向,让我检查一下自己是否有问题。这个人是零。谢谢,谢谢。我打字的时候把原来的问题搞糟了。第二行代码应该说:“newPlayerCoordinate.x=newPlayerCoordinate.x+1”而不是原来的“newPlayerCoordinate=newPlayerCoordinate.x+1”
。我知道这改变了你的答案。。。