gpt4 book ai didi

objective-c - 为什么 Nib 加载会选取我的类别?

转载 作者:行者123 更新时间:2023-12-03 17:32:11 24 4
gpt4 key购买 nike

我已经将 NSScrollView 扩展为不翻转类别(默认情况下它是翻转的)。然后我使用 Interface Builder 将 NSScrollView 添加到我的应用程序中。 NSScrollView 被翻转。

怎么会发生这种事?我的项目中的任何源文件中均未包含我的类别。我只编译它,其中似乎已经足够了。为了安全起见,我确实做了一个干净的构建。

最重要的是:我怎样才能改变这种行为?我不希望我的 Nib 自动选取他们可以找到的所有类别,另一方面,有时包含它们可能会很方便。但我一直将类别视为选择加入,而不是选择退出,因为这似乎在这里。

有什么想法吗?

最佳答案

类别适用于整个类(class);程序中任何位置的 NSScrollView 的所有实例都将采用新行为。因此,重写类别中的现有方法通常不是一个好主意;您正在为该类的所有用户更改该方法的行为,而不仅仅是您自己的实例。

因此类别既不是选择加入也不是选择退出;它们是绝对的、压倒一切的。如果该类别被编译到程序中,那么该类的每个实例都会受到影响。他们既不能选择加入,也不能选择退出;新的行为是运行时强加给他们的。使用类别时请记住这一点。

如果您想更改某些实例的行为,那么您应该创建 NSScrollView 的子类(将其称为 UnflippedScrollView 或其他名称)并重写其中的方法。然后在需要不翻转 ScrollView 的地方使用您的子类。

关于objective-c - 为什么 Nib 加载会选取我的类别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8759263/

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