Adds JSONHelper methods to read strings. (+1 squashed commit)

Squashed commits:
[30b0a71] Adds JSONHelper methods to read strings.
This commit is contained in:
2020-09-13 05:04:22 -07:00
parent 0fe24d767c
commit e821656871
4 changed files with 227 additions and 0 deletions

View File

@@ -0,0 +1,21 @@
//
// JSONHelper.h
// MonsterCards
//
// Created by Tom Hicks on 9/15/20.
// Copyright © 2020 Tom Hicks. All rights reserved.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface JSONHelper : NSObject
+(NSString*)readStringFromDictionary:(NSDictionary*)dictionary forKey:(NSString*)key;
+(NSString*)readStringFromDictionary:(NSDictionary*)dictionary forKey:(NSString*)key withDefaultValue:(NSString* _Nullable)defaultValue;
+(NSString*)readStringFromArray:(NSArray*)array forIndex:(NSUInteger)index;
+(NSString*)readStringFromArray:(NSArray*)array forIndex:(NSUInteger)index withDefaultValue:(NSString* _Nullable)defaultValue;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,39 @@
//
// JSONHelper.m
// MonsterCards
//
// Created by Tom Hicks on 9/15/20.
// Copyright © 2020 Tom Hicks. All rights reserved.
//
#import "JSONHelper.h"
@implementation JSONHelper
NSString* coerceObjectToString(NSObject *object, NSString *defaultValue) {
if ([object isKindOfClass:[NSString class]]) {
return (NSString*)object;
}
return defaultValue;
}
+(NSString*)readStringFromDictionary:(NSDictionary*)dictionary forKey:(NSString*)key {
return [JSONHelper readStringFromDictionary:dictionary forKey:key withDefaultValue:nil];
}
+(NSString*)readStringFromDictionary:(NSDictionary*)dictionary forKey:(NSString*)key withDefaultValue:(NSString* _Nullable)defaultValue {
NSObject *object = [dictionary objectForKey:key];
return coerceObjectToString(object, defaultValue);
}
+(NSString*)readStringFromArray:(NSArray*)array forIndex:(NSUInteger)index{
return [JSONHelper readStringFromArray:array forIndex:index withDefaultValue:nil];
}
+(NSString*)readStringFromArray:(NSArray*)array forIndex:(NSUInteger)index withDefaultValue:(NSString* _Nullable)defaultValue {
NSObject *object = [array objectAtIndex:index];
return coerceObjectToString(object, defaultValue);
}
@end