gpt4 book ai didi

ios - 前缀头导入取消了库对相同方法的实现

转载 作者:行者123 更新时间:2023-11-29 03:40:27 25 4
gpt4 key购买 nike

我在 UIView 上有一个实现 - (void)setWidth:(CGFLoat)newWidth 的类别,它通过更改 View 的框架和具有相同方法的静态库来设置宽度。我通过将类别添加到 .pch(前缀 header )文件来在整个项目中使用该类别。

当我尝试使用库方法时,我的类别覆盖了 setWidth: 方法并且永远不会调用库。我真的不想从前缀 header 中删除类别,因为这会导致项目的其余部分出现严重问题。

关于如何解决这个问题有什么想法吗?

谢谢!

~LSonic

最佳答案

不幸的是,Objective-C 方法(包括来自类别的方法)存在于同一命名空间中。如果有两个同名的方法实现,则不定义运行时调用哪个方法。

这在 Avoid Category Method Name Clashes 中进行了讨论在 Apple 的 Programming with Objective-C 中。

没有比在类别中为方法名称添加前缀更好的方法了。例如:

- (void)ls_setWidth:(CGFLoat)newWidth;

还有 see this question了解更多。

关于ios - 前缀头导入取消了库对相同方法的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18533373/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com