gpt4 book ai didi

iphone - NSObject 上的类别——保证它的安全

转载 作者:技术小花猫 更新时间:2023-10-29 11:03:42 24 4
gpt4 key购买 nike

Apple 有 this to say :

根类的类别

类别可以向任何类添加方法,包括根类。添加到 NSObject 的方法可用于链接到您的代码的所有类。向具有类别的根类添加方法有时很有用,但也可能非常危险。尽管类别所做的修改似乎很容易理解并且影响有限,但继承赋予了它们广泛的范围。您可能对应用程序中看不见的类进行了意外更改;您可能不知道您正在做的事情的所有后果。此外,处理您的应用程序的其他人不知道您的更改,他们不会理解他们在做什么。

我的问题是——如果我选择的方法名称足够奇怪以至于我很确定没有其他人会使用它们(无论是在 Apple 还是在我的项目中),我还会遇到麻烦吗?还会有意想不到的行为吗?性能影响?

最佳答案

如果您真的非常确定 Apple 永远不会添加该名称的方法,那么它是安全的。不过,如果您想要强制执行这种确定性,请在选择器名称前加上前缀。例如,Adium 曾在 NSMutableArray 中添加了一个 -setObject:atIndex: 方法(是的,只是对现有 API 方法 -replaceObject 的“修饰”包装:atIndex。非常无意义)...结果证明它与内部方法具有相同的名称,并且语义略有不同。这会导致崩溃,但仅限于某些操作系统。如果它被命名为类似 -AISetObject:atIndex: 的名称,那就没问题了。

类别的性能影响很小。我不会担心这方面。

关于iphone - NSObject 上的类别——保证它的安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6693646/

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