From 42d6132ac6846ceaf611faddf584613f588662ad Mon Sep 17 00:00:00 2001 From: Edwin Vermeer Date: Sat, 7 Apr 2018 11:04:55 +0200 Subject: [PATCH] nested array workaround helper functions --- EVReflection.podspec | 2 +- .../UserInterfaceState.xcuserstate | Bin 99873 -> 99877 bytes Source/EVArrayExtension.swift | 44 ++++++++++++++++++ .../EVReflectionTests/EVReflectionTests.swift | 15 ++++++ UnitTests/EVReflectionTests/TestObjects.swift | 31 ++++++------ 5 files changed, 78 insertions(+), 14 deletions(-) diff --git a/EVReflection.podspec b/EVReflection.podspec index 3d15590c..2ee04e7e 100755 --- a/EVReflection.podspec +++ b/EVReflection.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "EVReflection" - s.version = "5.5.6" + s.version = "5.6.0" s.summary = "Reflection based object mapping. (Dictionary, CKRecord, NSManagedObject, Realm, JSON, XML, Alamofire, Moya, RxSwift, ReactiveSwift)" s.description = <<-EOS diff --git a/EVReflection.xcworkspace/xcuserdata/evermeer.xcuserdatad/UserInterfaceState.xcuserstate b/EVReflection.xcworkspace/xcuserdata/evermeer.xcuserdatad/UserInterfaceState.xcuserstate index d5c9963fa463c369ce1ef8bfe4f68a6e58875e68..21f6adb42c044fe158c87619340d540f1fed8712 100644 GIT binary patch literal 99877 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 diff --git a/Source/EVArrayExtension.swift b/Source/EVArrayExtension.swift index 85156cc9..cf9fc8c9 100755 --- a/Source/EVArrayExtension.swift +++ b/Source/EVArrayExtension.swift @@ -190,3 +190,47 @@ public extension Array where Element: NSDictionary { } } + +public extension NSArray { + func nestedArrayMap(_ element: (NSDictionary)->T) -> [[T]] { + return (self.map { + (($0 as? NSArray)?.map { + element($0 as? NSDictionary ?? NSDictionary()) + }) ?? [] + }) + } + + func doubleNestedArrayMap(_ element: (NSDictionary)->T) -> [[[T]]] { + return (self.map { + (($0 as? NSArray)?.nestedArrayMap { element($0) }) ?? [[]] + }) + } + + func tripleNestedArrayMap(_ element: (NSDictionary)->T) -> [[[[T]]]] { + return (self.map { + (($0 as? NSArray)?.doubleNestedArrayMap { element($0) }) ?? [[[]]] + }) + } + + func quadrupleNestedArrayMap(_ element: (NSDictionary)->T) -> [[[[[T]]]]] { + return (self.map { + (($0 as? NSArray)?.tripleNestedArrayMap { element($0) }) ?? [[[[]]]] + }) + } + + func quintupleNestedArrayMap(_ element: (NSDictionary)->T) -> [[[[[[T]]]]]] { + return (self.map { + (($0 as? NSArray)?.quadrupleNestedArrayMap { element($0) }) ?? [[[[[]]]]] + }) + } + + func sextupleNestedArrayMap(_ element: (NSDictionary)->T) -> [[[[[[[T]]]]]]] { + return (self.map { + (($0 as? NSArray)?.quintupleNestedArrayMap { element($0) }) ?? [[[[[[]]]]]] + }) + } + + // If you need deeper nesting, whell, then you probably see the pattern above that you need to implement :-) + // just name them septuple, octuple, nonuple and decuple + // I'm not sure how far swift can handle it, but you should not want something like that. +} diff --git a/UnitTests/EVReflectionTests/EVReflectionTests.swift b/UnitTests/EVReflectionTests/EVReflectionTests.swift index f1beb209..59c47b53 100755 --- a/UnitTests/EVReflectionTests/EVReflectionTests.swift +++ b/UnitTests/EVReflectionTests/EVReflectionTests.swift @@ -502,6 +502,21 @@ class EVReflectionTests: XCTestCase { XCTAssert(obj.array[0][0].count == 3, "3 dimentional array should have 3 items inside the first item of the first item") XCTAssert(obj.array[0][0][0].openId == "value1", "3 dimentional array should have openId with a value of value1 in the first item of the first item in the first item") } + + func testSuperNested(){ + // For now using the propertyConverters workaround. + let json = "{\"array\":[[[[[[[{\"openId\":\"value1\"},{\"openId\":\"value2\"},{\"openId\":\"value3\"}],[{\"openId\":\"value3\"},{\"openId\":\"value4\"}]]]]]]]}" + let obj = A81d(json: json) + print(obj) + XCTAssert(obj.array.count == 1, "6 dimentional array should have 1 item") + XCTAssert(obj.array[0].count == 1, "6 dimentional array should have 1 item on nesting 1") + XCTAssert(obj.array[0][0].count == 1, "6 dimentional array should have 1 item on nesting 2") + XCTAssert(obj.array[0][0][0].count == 1, "6 dimentional array should have 1 item on nesting 3") + XCTAssert(obj.array[0][0][0][0].count == 1, "6 dimentional array should have 1 item on nesting 4") + XCTAssert(obj.array[0][0][0][0][0].count == 2, "6 dimentional array should have 2 item on nesting 5") + XCTAssert(obj.array[0][0][0][0][0][0].count == 3, "6 dimentional array should have 3 items inside nesting 6") + XCTAssert(obj.array[0][0][0][0][0][0][0].openId == "value1", "6 dimentional array should have openId with a value of value1 in the first available item") + } // Swift bug, class inside class works, class inside struct does not work. func testNestedDefinition() { diff --git a/UnitTests/EVReflectionTests/TestObjects.swift b/UnitTests/EVReflectionTests/TestObjects.swift index c51b8a2e..96fd17f6 100755 --- a/UnitTests/EVReflectionTests/TestObjects.swift +++ b/UnitTests/EVReflectionTests/TestObjects.swift @@ -270,12 +270,8 @@ class A81b: EVObject { // Failure should be fixed for https://github.com/evermeer/EVReflection/issues/212 override func propertyConverters() -> [(key: String, decodeConverter: ((Any?) -> ()), encodeConverter: (() -> Any?))] { return [(key: "array", - decodeConverter: { - self.array = (($0 as? NSArray)?.map { - (($0 as? NSArray)?.map { - A81(dictionary: ($0 as? NSDictionary ?? NSDictionary())) - }) ?? [] - }) ?? [[]] + decodeConverter: { + self.array = ($0 as? NSArray)?.nestedArrayMap { A81(dictionary: $0) } ?? [[]] }, encodeConverter: { return self.array })] } } @@ -288,13 +284,22 @@ class A81c: EVObject { override func propertyConverters() -> [(key: String, decodeConverter: ((Any?) -> ()), encodeConverter: (() -> Any?))] { return [(key: "array", decodeConverter: { - self.array = (($0 as? NSArray)?.map { - (($0 as? NSArray)?.map { - (($0 as? NSArray)?.map { - A81(dictionary: ($0 as? NSDictionary ?? NSDictionary())) - }) ?? [] - }) ?? [[]] - }) ?? [[[]]] + self.array = ($0 as? NSArray)?.doubleNestedArrayMap { A81(dictionary: $0) } ?? [[]] + }, encodeConverter: { return self.array })] + } +} + +class A81d: EVObject { + // Skipping the triple, quadruple, quintuple nestedArrayMap and go strait to the sextuple + // You should not want something like this + var array: [[[[[[[A81]]]]]]] = [[[[[[[]]]]]]] + + // Now only working using this workaround + // Failure should be fixed for https://github.com/evermeer/EVReflection/issues/212 + override func propertyConverters() -> [(key: String, decodeConverter: ((Any?) -> ()), encodeConverter: (() -> Any?))] { + return [(key: "array", + decodeConverter: { + self.array = ($0 as? NSArray)?.sextupleNestedArrayMap { A81(dictionary: $0) } ?? [[[[[[]]]]]] }, encodeConverter: { return self.array })] } }