Wil*_*sch 10 iphone objective-c categories nsobject ios
Apple有这样说:
根类的类别
类可以向任何类添加方法,包括根类.添加到NSObject的方法可用于链接到您的代码的所有类.使用类别向根类添加方法有时很有用,但它也可能非常危险.虽然看起来类别所做的修改很容易理解并且影响有限,但继承给它们提供了广泛的范围.您可能会对应用程序中看不见的类进行意外更改; 你可能不知道你正在做的所有后果.此外,在您的应用程序上工作的其他人,如果不了解您的更改,将无法理解他们正在做什么.
我的问题是 - 如果我选择的方法名称非常奇怪,我很确定没有其他人会使用它们(无论是在Apple还是在我的项目中),我还能遇到麻烦吗?还会出现意想不到的行为吗?性能影响?
如果你真的很确定Apple永远不会添加这个名字的方法,那么它是安全的.如果您想强制确定,请在选择器名称前加上前缀.例如,Adium在某一点上添加了一个-setObject:atIndex:方法NSMutableArray(是的,仅仅是现有API方法的"整形"包装器-replaceObject:atIndex.非常无意义)......它结果与内部方法具有相同的名称,而且语义略有不同.这导致崩溃,但仅限于某些操作系统.如果它被命名为类似-AISetObject:atIndex:它会没事的.
对类别的性能影响很小.我不担心这方面.
| 归档时间: |
|
| 查看次数: |
1792 次 |
| 最近记录: |