我有一个 Objective-C 类别,我想将其添加到多个类中,而不重复该类别中包含的代码。我只是想将相同的方法添加到多个类中。
我有现有的类别NSManagedObject
子类(Book
, Chapter
, Page
)并且我想以干净且可维护的方式在这些子类中添加通用功能。
一种方法是将类别添加到其公共超类中(NSManagedObject
),但这会导致将类别的方法添加到所有NSManagedObject
当我想将方法添加到三个 NSManagedObject 子类时(Book
, Chapter
, Page
).
另一种解决方案是子类化NSManagedObject
然后有Book
, Chapter
, and Page
继承自那NSManagedObject
子类。这是最干净、最直接的方法。这种方法的一大缺点是当数据模型发生变化并且 Xcode 重新生成子类时,它会将它们重置回继承自NSManagedObject
代替SubclassedManagedObject
。如果可能的话,我想避免使用类似 mogenerator/Xmo'd 的东西。
是否可以在多个类上添加单个类别而不重复代码?
Thanks.
也许为时已晚..但也许有一种方法可以做到..
但是,你说..需要有相同的超类
类别.h
@protocol MyProtocol <NSObject>
- (NSString*)foo;
@end
@interface NSArray (category) <MyProtocol> @end
@interface NSString (category) <MyProtocol> @end
类别.m
@interface NSObject (category) <MyProtocol> @end
@implementation NSObject (category)
- (NSString*)foo
{
return @"bar";
}
@end
我也不喜欢这个,但它有效
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)