Objective c CGPoint的初始值设定项无效
嘿,我有一些代码不断返回错误消息,但我不知道问题出在哪里。我对Objective-c语法相当陌生,所以它可能相当简单,但是我似乎找不到问题。方法是Objective c CGPoint的初始值设定项无效,objective-c,Objective C,嘿,我有一些代码不断返回错误消息,但我不知道问题出在哪里。我对Objective-c语法相当陌生,所以它可能相当简单,但是我似乎找不到问题。方法是 -(void)setPlayerPosition:(CGPoint) position { CGPoint tileCoord = [self tileCoordForPosition:position]; int tileGid = [metaLayer tileGIDAt:tileCoord]; if (tileGid)
-(void)setPlayerPosition:(CGPoint) position {
CGPoint tileCoord = [self tileCoordForPosition:position];
int tileGid = [metaLayer tileGIDAt:tileCoord];
if (tileGid) {
NSDictionary *properties = [tileMap propertiesForGID:tileGid];
if (properties) {
NSString *collision = [properties valueForKey:@"Collidable"];
if (collision && [collision compare:@"True"] == NSOrderedSame) {
return;
}
NSString *collectable = [properties valueForKey:@"Collectable"];
if (collectable && [collectable compare:@"True"] == NSOrderedSame) {
[metaLayer removeTileAt:tileCoord];
[foreground removeTileAt:tileCoord];
}
}
}
player.position = position;
}
它返回第二行的错误无效初始值设定项,并表示我的类可能不会响应“TileCordForPosition:”任何帮助都将不胜感激 您需要在头文件中声明
tilecordforposition:
,以便编译器知道它返回的是什么类型(在本例中是一个CGPoint)。我假设您在
因此,在我自己简单地阅读了它之后,我猜测您要么缺少所需的方法,要么没有在类中正确地声明它
您应该声明并实现以下方法
- (CGPoint)tileCoordForPosition:(CGPoint)position
它应该在同一个类中,正如你自己所说的
[self tileCoordForPosition:position]
如果您确实在类中实现了该方法,那么请确保您也正确地声明了它。尝试将其添加到.m
文件的顶部,如下所示
@interface YourControllerNameHere()
- (CGPoint)tileCoordForPosition:(CGPoint)position;
@end