AtSugarMixin 扩展了 AtSugar,使其能够轻松使用 Mixins。Mixin 功能由 ObjectiveMixin 提供。
然后包括头文件
#import <AtSugarMixin/ASMixin.h>
首先,声明一个用于实现 Mixin 行为的协议。AtSugarMixin 甚至允许您混入属性!
@protocol MyMixinProtocol <NSObject>
@property (strong, nonatomic) NSString* aStringProperty;
@property (strong, nonatomic) NSArray* anArrayProperty;
- (void)doSomething;
@end
然后创建一个将提供 Mixin 实现的类。此类遵循您的 Mixin 协议。
#define MyMixinSynthesizeProperties aStringProperty, anArrayProperty
@interface MyMixin : NSObject <MYMixinProtocol>
@end
我们需要定义 MyMixinSynthesizeProperties
,这样 AtSugarMixin 才能从协议中生成属性。
@implementation MyMixin
@synthesize_from_mixin (MyMixin)
- (void)doSomething
{
// implementation
}
@end
现在我们可以将我们的 MyMixin
行为混入我们想要的所有类中。
@interface MyObject : NSObject <MyMixinProtocol>
@end
@implementation MyObject
@synthesize_from_mixin (MyMixin)
@end
现在 MyObject
有 2 个混入属性:aStringProperty
和 anArrayProperty
。还有一个混入方法:-doSomething
。
MediaHound
AtSugarMixin 在 Apache License 2.0 的许可下提供。有关更多信息,请参阅 LICENSE 文件。