Skip to content

ainame/AMEEnumeratedObject

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AMEEnumeratedObject

CI Status Version License Platform

Usage

@interface Alphabets : AMEEnumeratCollection; @end
@interface Alphabet : AMEEnumeratedObject
+ (Alphabet *)enumObject;
@end;
@implementation Alphabet;  @end
@interface A : Alphabet; @end; @implementation A; @end
@interface B : Alphabet; @end; @implementation B; @end
@interface C : Alphabet; @end; @implementation C; @end

@implementation Alphabets
+ (NSArray *) values
{
    return @[
        [A defineEnum:0 name:@"a" description:@"えー"],
        [B defineEnum:1 name:@"b" description:@"びー"],
        [C defineEnum:2 name:@"c" description:@"しー"],
    ];
}
@end

// ....

[AMEEnumeratedObjectInitializer initializeAllEnumerateObjects];
Alphabet *alphabet = [A enumObject];
alphabet.ordinal; //=> 0
alphabet.name; //=> @"a"
alphabet.description; //=> @"えー"

alphabet = [Alphabets valueForName:@"b"] // => B object;
[Alphabets values]                       // => A, B and c instances as NSArray;

Requirements

Installation

AMEEnumeratedObject is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod "AMEEnumeratedObject"

Author

ainame

License

AMEEnumeratedObject is available under the MIT license. See the LICENSE file for more info.

About

[deprecated] AMEEnumeratedObject provide defining method to create a enum object as a plain old objc object.

Resources

License

Stars

Watchers

Forks

Packages

No packages published