我需要一个类,它拥有NSArray的所有方法,但是两个方法被修改了。
我想在我的自定义类中重写这两个方法:
1)countByEnumeratingWithState:objects:count:
2)objectAtIndex:
经过几个小时的研究,我发现没有合理的方法可以做到这一点,因为:
- 我不想使用分类,因为并非所有的NSArray实例都应该具有修改后的行为。(而且会引发警告) - 我不想重新编写所有的初始化器、arrayWith...方法、基本方法以及实现自己的存储(因为这些功能已经在Cocoa中实现了,对吧?为什么要重新实现一个已经存在的类的所有功能呢?) - 如果我让我的自定义类继承NSObject,并在ivar中使用NSArray作为存储,那么当在Xcode中编程时,所有NSArray的方法都将不可用(即使我可以将它们转发到NSArray ivar中) - 我曾经尝试使用method_setImplementation(...)按需覆盖方法实现,但仍然无法找到一种方式,在运行时动态创建一个类,然后该类将具有我提到的2个方法的自定义实现。
期待您的想法!谢谢
我想在我的自定义类中重写这两个方法:
1)countByEnumeratingWithState:objects:count:
2)objectAtIndex:
经过几个小时的研究,我发现没有合理的方法可以做到这一点,因为:
- 我不想使用分类,因为并非所有的NSArray实例都应该具有修改后的行为。(而且会引发警告) - 我不想重新编写所有的初始化器、arrayWith...方法、基本方法以及实现自己的存储(因为这些功能已经在Cocoa中实现了,对吧?为什么要重新实现一个已经存在的类的所有功能呢?) - 如果我让我的自定义类继承NSObject,并在ivar中使用NSArray作为存储,那么当在Xcode中编程时,所有NSArray的方法都将不可用(即使我可以将它们转发到NSArray ivar中) - 我曾经尝试使用method_setImplementation(...)按需覆盖方法实现,但仍然无法找到一种方式,在运行时动态创建一个类,然后该类将具有我提到的2个方法的自定义实现。
期待您的想法!谢谢