Objective c 中方法调用的警告

发布于 2024-11-04 22:52:45 字数 459 浏览 4 评论 0原文

我认为这个问题的答案很简单,我只是不知道如何摆脱这些警告。

当我执行此方法调用时,我收到 'DebugZoneLayer' 可能无法响应 '-getGID:tileKind'初始化从指针生成整数而无需转换

int blocksCollidableGID  = [debugZoneLayer getGID:[NSValue valueWithCGPoint:(NSString*)tileCoord] tileKind:@"blocksCollidable"];

我尝试过铸造这些类型的值的所有不同组合。

在 DebugZoneLayer.h 中我有:

-(int) getGID:(CGPoint)tileCoord withTileKind:(NSString*)tileKind;

谢谢

I think this will be pretty simply answered, I'm just stumped on how to get rid of these warnings.

I'm getting 'DebugZoneLayer' may not respond to '-getGID:tileKind' and Initialization makes integer from pointer without a cast when I do this method call:

int blocksCollidableGID  = [debugZoneLayer getGID:[NSValue valueWithCGPoint:(NSString*)tileCoord] tileKind:@"blocksCollidable"];

Which I tried all different combinations of casting those types of values.

In DebugZoneLayer.h I have:

-(int) getGID:(CGPoint)tileCoord withTileKind:(NSString*)tileKind;

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

落花随流水 2024-11-11 22:52:45

另外,第一个参数不应该是 NSValue,它应该是 CGPoint。

Also the first parameter should not be an NSValue, it should be a CGPoint.

月下凄凉 2024-11-11 22:52:45

septi 关于选择器拼写错误的说法是正确的,但似乎还存在一些其他问题。

  • -valueWithCGPoint: 需要一个 CGPoint。转换为 (NSString *) 不正确。什么是tileCoord
  • 第一个参数被声明为采用 CGPoint,而不是 NSValue,因此装箱一开始似乎就没有必要。

septi is correct about the selector typo, but there seems to be some additional problems as well.

  • -valueWithCGPoint: takes, well, a CGPoint. The cast to (NSString *) is incorrect. What is tileCoord?
  • The first parameter is declared to take a CGPoint, not an NSValue, so the boxing doesn't seem necessary in the first place.
┾廆蒐ゝ 2024-11-11 22:52:45

显然应该是withTileKind而不是tileKind。

编辑:我的意思是这一行;-)

int blocksCollidableGID  = [debugZoneLayer getGID:[NSValue valueWithCGPoint:(NSString*)tileCoord] withTileKind:@"blocksCollidable"];

编辑:

所以现在你摆脱了警告。现在编译器发现了一些其他错误,就像已经提到的其他错误一样。既然你现在似乎陷入困境,我会尝试猜测该怎么做。

你提到,tileCoord 是一个CGPoint。所以无论如何,绝对没有必要对其进行转换或转换。尝试这行代码:

int blocksCollidableGID  = [debugZoneLayer getGID:tileCoord withTileKind:@"blocksCollidable"];

看看是否还有其他错误。

Obviously it should be withTileKind instead of tileKind.

Edit: I mean this line ;-)

int blocksCollidableGID  = [debugZoneLayer getGID:[NSValue valueWithCGPoint:(NSString*)tileCoord] withTileKind:@"blocksCollidable"];

Edit:

so now you got rid of the warning. Now the compiler finds some other errors, like others already mentioned. Since you seem stuck at this point, I'll try to guess what to do.

You mentioned, that tileCoord is a CGPoint. So there is absolutely no need to cast or convert it anyway. Try this line of code:

int blocksCollidableGID  = [debugZoneLayer getGID:tileCoord withTileKind:@"blocksCollidable"];

and see if there are other errors.

从﹋此江山别 2024-11-11 22:52:45

不需要进行转换。

tileCoord 或tileKind intblocksCollidableGID = [debugZoneLayer getGID:tileCoord withTileKind:@"blocksCollidable"];

There is no casting that's needed for either tileCoord or tileKind

int blocksCollidableGID = [debugZoneLayer getGID:tileCoord withTileKind:@"blocksCollidable"];

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文