gpt4 book ai didi

ios - 将自己的功能添加到 iOS 库中

转载 作者:行者123 更新时间:2023-11-29 10:35:48 26 4
gpt4 key购买 nike

我正在使用一个具有相当复杂的继承结构的库(它由几个继承的类组成,例如 UITableViewControllerUIViewUITableViewCell 和其他人,其中一些类用于创建自定义对象。

我需要添加一些功能(准确地说,是实现点击手势识别器)。简单的解决方案是将几行代码放入库的一些类中。
通常,我喜欢将我的代码与库代码分开。是否有可能以某种方式“覆盖”这些类而不重写它们,或者添加一些扩展?

或者唯一的想法是编写所有生成自己的类和大量无用代码的类的覆盖?

或者只是将自己的代码添加到库中?

添加:
看来,类别是正确的方向,但不是特别是我想要的。这正是我想要的:
我在 Class1 中有一个:

- (void)someMethod {
doThis;
}

并且在没有子类化的情况下//编辑我想将其转换为的类:

- (void)someMethod {
doThis;
andThisToo;
}

类别向类添加其他方法,而我需要在现有方法中添加一些功能。

最佳答案

你需要使用装饰器模式。

The decorator pattern is used to extend or alter the functionality of objects at run- time by wrapping them in an object of a decorator class. This provides a flexible alternative to using inheritance to modify behaviour.

由于您给出的示例非常粗略,我无法提供代码示例,但请查看维基百科 ( http://en.wikipedia.org/wiki/Decorator_pattern )

编辑

我考虑了您提供的内容,这里是装饰器的示例:

@interface Decorator
@property (strong, nonatomic) id decoratedObject;
- (void)someMethod;
@end

@implementation Decorator
- (void)someMethod {
[self.decoratedObject doThis];
[self andDoThisToo];
}

@end

关于ios - 将自己的功能添加到 iOS 库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27219751/

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