INMEnum 0.4.0

INMEnum 0.4.0

测试已测试
语言语言 Obj-CObjective C
许可协议 MIT
发布时间最后发布2016年4月

ainame 维护。



INMEnum 0.4.0

使用方法

要运行示例项目,请先克隆仓库,然后从 Example 目录运行 pod install

@interface SushiGoRound : INMEnumCollection; @end
@interface Sushi : INMEnum; @end;
@implementation Sushi;  @end
@interface Tuna : Sushi; @end; @implementation Tuna; @end
@interface Egg : Sushi; @end; @implementation Egg; @end
@interface Shrimp : Sushi; @end; @implementation Shrimp; @end

@implementation SushiGoRound
+ (NSArray *) values
{
    return @[
        [Tuna defineEnum:0 name:@"tuna" description:@":sushi:"],
        [Egg defineEnum:1 name:@"egg" description:@":egg:"],
        [Shrimp defineEnum:2 name:@"shrimp" description:@":fried_shrimp:"],
    ];
}
@end

// ....

[INMEnumInitializer initializeAllEnumerateObjects]; // must call at first
Sushi *sushi = [tuna enumObject];
sushi.ordinal; //=> 0
sushi.name; //=> @"tuna"
sushi.description; //=> @":sushi:"

sushi = [sushi valueForName:@"egg"] // => Egg object;
[SushiGoRound values]               // => Tuna, Egg and Shrimp instances as NSArray;

// INMEnum's swtich case syntax
[SushiGoRound switch:sushi
               cases:[Tuna then:^{ NSLog(@"awesome!"); }],
                     [Egg then:^{ NSLog(@"yummy!!"); }],
                     [Shrimp then:^{ NSLog(@"delicious!!!"); }],
                     [INMEnumCaseDefault then:^{ NSLog(@"WTF!"); }]]; // must set at last

约束

  • 您必须通过 [INMEnumInitializer initializeAllEnumerateObjects] 在触摸任何枚举对象之前进行初始化。
  • 您必须在 swtich:cases: 选择器的参数中给定 INMEnumCaseDefault 部分。

要求

安装

作者

ainame

许可协议

INMEnum 在 MIT 许可协议下可用。有关更多信息,请参阅 LICENSE 文件。