Explorar o código

Add FLEXEncodeClass macro for a consistent way of getting full class type encoding strings.

Ryan Olson %!s(int64=12) %!d(string=hai) anos
pai
achega
ccf2cd4ede

+ 2 - 1
Classes/Editing/Argument Input Views/FLEXArgumentInputColorView.m

@@ -8,6 +8,7 @@
 
 #import "FLEXArgumentInputColorView.h"
 #import "FLEXUtility.h"
+#import "FLEXRuntimeUtility.h"
 
 @protocol FLEXColorComponentInputViewDelegate;
 
@@ -322,7 +323,7 @@
 
 + (BOOL)supportsObjCType:(const char *)type withCurrentValue:(id)value
 {
-    return strcmp(type, @encode(CGColorRef)) == 0 || strcmp(type, "@\"UIColor\"") == 0 || [value isKindOfClass:[UIColor class]];
+    return strcmp(type, @encode(CGColorRef)) == 0 || strcmp(type, FLEXEncodeClass(UIColor)) == 0 || [value isKindOfClass:[UIColor class]];
 }
 
 @end

+ 3 - 2
Classes/Editing/Argument Input Views/FLEXArgumentInputFontView.m

@@ -8,6 +8,7 @@
 
 #import "FLEXArgumentInputFontView.h"
 #import "FLEXArgumentInputViewFactory.h"
+#import "FLEXRuntimeUtility.h"
 
 @interface FLEXArgumentInputFontView ()
 
@@ -22,7 +23,7 @@
 {
     self = [super initWithArgumentTypeEncoding:typeEncoding];
     if (self) {
-        self.fontNameInput = [FLEXArgumentInputViewFactory argumentInputViewForTypeEncoding:"@\"NSString\""];
+        self.fontNameInput = [FLEXArgumentInputViewFactory argumentInputViewForTypeEncoding:FLEXEncodeClass(NSString)];
         self.fontNameInput.backgroundColor = self.backgroundColor;
         self.fontNameInput.targetSize = FLEXArgumentInputViewSizeSmall;
         self.fontNameInput.title = @"Font Name:";
@@ -111,7 +112,7 @@
 
 + (BOOL)supportsObjCType:(const char *)type withCurrentValue:(id)value
 {
-    BOOL supported = strcmp(type, "@\"UIFont\"") == 0;
+    BOOL supported = strcmp(type, FLEXEncodeClass(UIFont)) == 0;
     supported = supported || (value && [value isKindOfClass:[UIFont class]]);
     return supported;
 }

+ 4 - 4
Classes/Editing/Argument Input Views/FLEXArgumentInputJSONObjectView.m

@@ -49,10 +49,10 @@
             if (strcmp(type, @encode(id)) != 0) {
                 BOOL isJSONSerializableType = NO;
                 // Note: we can't use @encode(NSString) here because that drops the string information and just goes to @encode(id).
-                isJSONSerializableType = isJSONSerializableType || strcmp(type, "@\"NSString\"") == 0;
-                isJSONSerializableType = isJSONSerializableType || strcmp(type, "@\"NSNumber\"") == 0;
-                isJSONSerializableType = isJSONSerializableType || strcmp(type, "@\"NSArray\"") == 0;
-                isJSONSerializableType = isJSONSerializableType || strcmp(type, "@\"NSDictionary\"") == 0;
+                isJSONSerializableType = isJSONSerializableType || strcmp(type, FLEXEncodeClass(NSString)) == 0;
+                isJSONSerializableType = isJSONSerializableType || strcmp(type, FLEXEncodeClass(NSNumber)) == 0;
+                isJSONSerializableType = isJSONSerializableType || strcmp(type, FLEXEncodeClass(NSArray)) == 0;
+                isJSONSerializableType = isJSONSerializableType || strcmp(type, FLEXEncodeClass(NSDictionary)) == 0;
                 
                 supported = isJSONSerializableType;
             }

+ 2 - 1
Classes/Editing/Argument Input Views/FLEXArgumentInputStringView.m

@@ -7,6 +7,7 @@
 //
 
 #import "FLEXArgumentInputStringView.h"
+#import "FLEXRuntimeUtility.h"
 
 @implementation FLEXArgumentInputStringView
 
@@ -36,7 +37,7 @@
 
 + (BOOL)supportsObjCType:(const char *)type withCurrentValue:(id)value
 {
-    BOOL supported = strcmp(type, "@\"NSString\"") == 0;
+    BOOL supported = strcmp(type, FLEXEncodeClass(NSString)) == 0;
     supported = supported || (value && [value isKindOfClass:[NSString class]]);
     return supported;
 }

+ 1 - 1
Classes/Object Explorers/FLEXViewExplorerViewController.m

@@ -200,7 +200,7 @@ typedef NS_ENUM(NSUInteger, FLEXViewExplorerRow) {
     NSDictionary *hiddenAttributes = @{kFLEXUtilityAttributeTypeEncoding : @(@encode(BOOL)), kFLEXUtilityAttributeNonAtomic : @"", kFLEXUtilityAttributeCustomGetter : @"isHidden"};
     [FLEXRuntimeUtility tryAddPropertyWithName:"hidden" attributes:hiddenAttributes toClass:[UIView class]];
     
-    NSDictionary *backgroundColorAttributes = @{kFLEXUtilityAttributeTypeEncoding : @"@\"UIColor\"", kFLEXUtilityAttributeNonAtomic : @"", kFLEXUtilityAttributeCopy : @""};
+    NSDictionary *backgroundColorAttributes = @{kFLEXUtilityAttributeTypeEncoding : @(FLEXEncodeClass(UIColor)), kFLEXUtilityAttributeNonAtomic : @"", kFLEXUtilityAttributeCopy : @""};
     [FLEXRuntimeUtility tryAddPropertyWithName:"backgroundColor" attributes:backgroundColorAttributes toClass:[UIView class]];
 }
 

+ 2 - 0
Classes/Utility/FLEXRuntimeUtility.h

@@ -25,6 +25,8 @@ extern NSString *const kFLEXUtilityAttributeWeak;
 extern NSString *const kFLEXUtilityAttributeGarbageCollectable;
 extern NSString *const kFLEXUtilityAttributeOldStyleTypeEncoding;
 
+#define FLEXEncodeClass(class) ("@\"" #class "\"")
+
 @interface FLEXRuntimeUtility : NSObject
 
 // Property Helpers