多个名为“-setTransform:”的方法成立

发布于 2024-11-17 23:32:41 字数 326 浏览 2 评论 0原文

-(void)rotateView:(id)sender {
CGAffineTransform rotateTransform = CGAffineTransformRotate(CGAffineTransformIdentity, M_PI);
[sender setTransform:rotateTransform];//the error is shown here
}

我收到此警告错误,显示并显示多个名为 -setTransform: 的方法。仅当我的头文件中包含 #import AVFoundation/AVFoundation.h 时,它才会显示。有什么建议吗?谢谢

-(void)rotateView:(id)sender {
CGAffineTransform rotateTransform = CGAffineTransformRotate(CGAffineTransformIdentity, M_PI);
[sender setTransform:rotateTransform];//the error is shown here
}

I am getting this caution error that shows up and says Multiple methods named -setTransform: found. It only shows up when I have #import AVFoundation/AVFoundation.h in my header file. Any suggestions? Thanks

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

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

发布评论

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

评论(1

滥情稳全场 2024-11-24 23:32:41

sender 转换为正确的类类型,警告就会消失:

[(YourClassHere *)sender setTransform:rotateTransform];

因为 sender 作为 idrotateView: code> Xcode 无法知道它是什么实际的类类型以及调用哪个方法。

编辑:巧合的是,就在今天,Cocoa With Love 成名的 Matt Gallagher 发表了文章,介绍在 Objective-C 中调用 id 上的模糊方法所导致的各种问题。

Cast sender to the proper class type and the warning should go away:

[(YourClassHere *)sender setTransform:rotateTransform];

As sender is passed to rotateView: as type id Xcode cannot know what actual class type it is and by that which method to call.

Edit: Coincidentally just today Matt Gallagher of Cocoa With Love fame published an article about all kinds of issues caused by calling an ambiguous method on id in Objective-C.

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