11
11
#import " NSString+Utilities.h"
12
12
#import " ValidationFunctions.h"
13
13
14
- #define kPropertyTypesArray @[@" Unknown" ,@" NSString" , [NSString stringWithFormat: @" %s " ,@encode (BOOL )], @" NSNumber" , @" i" , @" f" , @" NSArray" , @" NSMutableArray" , @" NSDictionary" , @" NSMutableDictionary" , @" I" , @" NSDate" , @" d" ]
15
-
16
14
typedef NS_ENUM (NSUInteger , CTCPropertyType){
17
- CTCPropertyUnknown = 0 , /* *< Property type is unknown */
18
- CTCPropertyTypeString, /* *< Property is an NSString */
19
- CTCPropertyTypeBool, /* *< Property is a BOOL */
20
- CTCPropertyTypeNumber, /* *< Property is an NSNumber */
21
- CTCPropertyTypeInteger, /* *< Property is an NSInteger */
22
- CTCPropertyTypeFloat, /* *< Property is a float */
23
- CTCPropertyTypeArray, /* *< Property is an NSArray */
24
- CTCPropertyTypeMutableArray, /* *< Property is an NSMutableArray */
25
- CTCPropertyTypeDictionary, /* *< Property is an NSDictionary */
26
- CTCPropertyTypeMutableDictionary, /* *< Property is an NSMutableDictionary */
27
- CTCPropertyTypeUnsignedInteger, /* *< Property is an NSUInteger */
28
- CTCPropertyTypeDate, /* *< Property is an NSDate */
29
- CTCPropertyTypeDouble /* *< Property is a double */
15
+ CTCPropertyUnknown = 0 , // Property type is unknown
16
+ CTCPropertyTypeString, // Property is an NSString
17
+ CTCPropertyTypeBool, // Property is a BOOL
18
+ CTCPropertyTypeNumber, // Property is an NSNumber
19
+ CTCPropertyTypeInteger, // Property is an NSInteger
20
+ CTCPropertyTypeFloat, // Property is a float
21
+ CTCPropertyTypeArray, // Property is an NSArray
22
+ CTCPropertyTypeMutableArray, // Property is an NSMutableArray
23
+ CTCPropertyTypeDictionary, // Property is an NSDictionary
24
+ CTCPropertyTypeMutableDictionary, // Property is an NSMutableDictionary
25
+ CTCPropertyTypeUnsignedInteger, // Property is an NSUInteger
26
+ CTCPropertyTypeDate, // Property is an NSDate
27
+ CTCPropertyTypeDouble // Property is a double
30
28
};
31
29
32
30
@interface CTCBaseModel ()
@@ -47,9 +45,23 @@ + (void)initialize {
47
45
48
46
dispatch_once (&onceToken, ^{
49
47
modelProperties = [NSMutableDictionary dictionary ];
50
- propertyTypesArray = kPropertyTypesArray ;
48
+
49
+ // note this array's indexes MUST match the CTCPropertyType enum values for lookups to work properly
50
+ propertyTypesArray = @[@" Unknown" , // CTCPropertyUnknown
51
+ @" NSString" , // CTCPropertyTypeString
52
+ [NSString stringWithFormat: @" %s " ,@encode (BOOL )], // CTCPropertyTypeBool
53
+ @" NSNumber" , // CTCPropertyTypeNumber
54
+ [NSString stringWithFormat: @" %s " ,@encode (int )], // CTCPropertyTypeInteger
55
+ [NSString stringWithFormat: @" %s " ,@encode (float )], // CTCPropertyTypeFloat
56
+ @" NSArray" , // CTCPropertyTypeArray
57
+ @" NSMutableArray" , // CTCPropertyTypeMutableArray
58
+ @" NSDictionary" , // CTCPropertyTypeDictionary
59
+ @" NSMutableDictionary" , // CTCPropertyTypeMutableDictionary
60
+ [NSString stringWithFormat: @" %s " ,@encode (unsigned int )], // CTCPropertyTypeUnsignedInteger
61
+ @" NSDate" , // CTCPropertyTypeDate
62
+ [NSString stringWithFormat: @" %s " ,@encode (double )]]; // CTCPropertyTypeDouble
51
63
});
52
-
64
+
53
65
NSMutableDictionary *translateNameDict = [NSMutableDictionary dictionary ];
54
66
[self hydrateModelProperties: [self class ] translateDictionary: translateNameDict];
55
67
[modelProperties setObject: translateNameDict forKey: [self calculateClassName ]];
0 commit comments