|
@@ -14,7 +14,9 @@
|
|
|
#import "FLEXFieldEditorViewController.h"
|
|
#import "FLEXFieldEditorViewController.h"
|
|
|
#import "FLEXMethodCallingViewController.h"
|
|
#import "FLEXMethodCallingViewController.h"
|
|
|
#import "FLEXTableView.h"
|
|
#import "FLEXTableView.h"
|
|
|
|
|
+#import "NSArray+Functional.h"
|
|
|
|
|
|
|
|
|
|
+#pragma mark FLEXProperty
|
|
|
@implementation FLEXProperty (UIKitHelpers)
|
|
@implementation FLEXProperty (UIKitHelpers)
|
|
|
|
|
|
|
|
/// Decide whether to use object or [object class] to get or set property
|
|
/// Decide whether to use object or [object class] to get or set property
|
|
@@ -107,6 +109,7 @@
|
|
|
@end
|
|
@end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+#pragma mark FLEXIvar
|
|
|
@implementation FLEXIvar (UIKitHelpers)
|
|
@implementation FLEXIvar (UIKitHelpers)
|
|
|
|
|
|
|
|
- (BOOL)isEditable {
|
|
- (BOOL)isEditable {
|
|
@@ -176,6 +179,7 @@
|
|
|
@end
|
|
@end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+#pragma mark FLEXMethod*
|
|
|
@implementation FLEXMethodBase (UIKitHelpers)
|
|
@implementation FLEXMethodBase (UIKitHelpers)
|
|
|
|
|
|
|
|
- (BOOL)isEditable {
|
|
- (BOOL)isEditable {
|
|
@@ -245,6 +249,7 @@
|
|
|
@end
|
|
@end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+#pragma mark FLEXProtocol
|
|
|
@implementation FLEXProtocol (UIKitHelpers)
|
|
@implementation FLEXProtocol (UIKitHelpers)
|
|
|
|
|
|
|
|
- (BOOL)isEditable {
|
|
- (BOOL)isEditable {
|
|
@@ -280,16 +285,30 @@
|
|
|
@end
|
|
@end
|
|
|
|
|
|
|
|
|
|
|
|
|
-@interface FLEXStaticMetadata ()
|
|
|
|
|
-@property (nonatomic, readonly) FLEXTableViewCellReuseIdentifier reuse;
|
|
|
|
|
-@property (nonatomic, readonly) NSString *subtitle;
|
|
|
|
|
-@property (nonatomic, readonly) id metadata;
|
|
|
|
|
|
|
+#pragma mark FLEXStaticMetadata
|
|
|
|
|
+@interface FLEXStaticMetadata () {
|
|
|
|
|
+ @protected
|
|
|
|
|
+ NSString *_name;
|
|
|
|
|
+}
|
|
|
|
|
+@property (nonatomic) FLEXTableViewCellReuseIdentifier reuse;
|
|
|
|
|
+@property (nonatomic) NSString *subtitle;
|
|
|
|
|
+@property (nonatomic) id metadata;
|
|
|
|
|
+@end
|
|
|
|
|
+
|
|
|
|
|
+@interface FLEXStaticMetadata_Class : FLEXStaticMetadata
|
|
|
|
|
++ (instancetype)withClass:(Class)cls;
|
|
|
@end
|
|
@end
|
|
|
|
|
|
|
|
@implementation FLEXStaticMetadata
|
|
@implementation FLEXStaticMetadata
|
|
|
@synthesize name = _name;
|
|
@synthesize name = _name;
|
|
|
@synthesize tag = _tag;
|
|
@synthesize tag = _tag;
|
|
|
|
|
|
|
|
|
|
++ (NSArray<FLEXStaticMetadata *> *)classHierarchy:(NSArray<Class> *)classes {
|
|
|
|
|
+ return [classes flex_mapped:^id(Class cls, NSUInteger idx) {
|
|
|
|
|
+ return [FLEXStaticMetadata_Class withClass:cls];
|
|
|
|
|
+ }];
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
+ (instancetype)style:(FLEXStaticMetadataRowStyle)style title:(NSString *)title string:(NSString *)string {
|
|
+ (instancetype)style:(FLEXStaticMetadataRowStyle)style title:(NSString *)title string:(NSString *)string {
|
|
|
return [[self alloc] initWithStyle:style title:title subtitle:string];
|
|
return [[self alloc] initWithStyle:style title:title subtitle:string];
|
|
|
}
|
|
}
|
|
@@ -351,3 +370,32 @@
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@end
|
|
@end
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+#pragma mark FLEXStaticMetadata_Class
|
|
|
|
|
+@implementation FLEXStaticMetadata_Class
|
|
|
|
|
+
|
|
|
|
|
++ (instancetype)withClass:(Class)cls {
|
|
|
|
|
+ NSParameterAssert(cls);
|
|
|
|
|
+
|
|
|
|
|
+ FLEXStaticMetadata_Class *metadata = [self new];
|
|
|
|
|
+ metadata.metadata = cls;
|
|
|
|
|
+ metadata->_name = NSStringFromClass(cls);
|
|
|
|
|
+ metadata.reuse = kFLEXDefaultCell;
|
|
|
|
|
+ return metadata;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+- (id)initWithStyle:(FLEXStaticMetadataRowStyle)style title:(NSString *)title subtitle:(NSString *)subtitle {
|
|
|
|
|
+ @throw NSInternalInconsistencyException;
|
|
|
|
|
+ return nil;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+- (UIViewController *)viewerWithTarget:(id)object {
|
|
|
|
|
+ return [FLEXObjectExplorerFactory explorerViewControllerForObject:self.metadata];
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+- (UITableViewCellAccessoryType)suggestedAccessoryTypeWithTarget:(id)object {
|
|
|
|
|
+ return UITableViewCellAccessoryDisclosureIndicator;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+@end
|