From 34e91218af4676be08241e25b63b885589cfce67 Mon Sep 17 00:00:00 2001 From: Vincent Neo <23420208+vincentneo@users.noreply.github.com> Date: Thu, 14 Nov 2019 14:01:11 +0800 Subject: [PATCH] Fix incorrect gpx extensions tagging when parent tag exists --- Classes/GPXExtensions.swift | 16 +--------------- Classes/GPXExtensionsElement.swift | 9 +++++++++ 2 files changed, 10 insertions(+), 15 deletions(-) diff --git a/Classes/GPXExtensions.swift b/Classes/GPXExtensions.swift index 0e2b4f6..2bd973b 100644 --- a/Classes/GPXExtensions.swift +++ b/Classes/GPXExtensions.swift @@ -140,21 +140,7 @@ public final class GPXExtensions: GPXElement, Codable { } // MARK:- Unavailable classes - - /// Insert a dictionary of extension objects - /// - /// - Parameters: - /// - tag: Parent Tag. If inserting without the parent tag, this value should be `nil` - /// - contents: Contents as a dictionary to be inserted to this object. - @available( *, unavailable, message: "Please append GPXExtensionsElement to this extension instead, or use append(at:). Read documentation to learn more.") - public func insert(withParentTag tag: String?, withContents contents: [String : String]) {} - - /// Remove a dictionary of extension objects - /// - /// - Parameters: - /// - tag: Parent Tag of contents for removal. If removing without the parent tag, this value should be `nil` - @available( *, unavailable, message: "Please append GPXExtensionsElement to this extension instead, or use get(from:). Read documentation to learn more.") - public func remove(contentsOfParentTag tag: String?) {} + // Have been removed. // MARK:- GPX diff --git a/Classes/GPXExtensionsElement.swift b/Classes/GPXExtensionsElement.swift index bc33783..62af5a0 100644 --- a/Classes/GPXExtensionsElement.swift +++ b/Classes/GPXExtensionsElement.swift @@ -66,6 +66,9 @@ open class GPXExtensionsElement: GPXElement, Codable { else if let text = text { self.addProperty(forValue: text, gpx: gpx, tagName: tagName(), indentationLevel: indentationLevel) } + else { + super.addOpenTag(toGPX: gpx, indentationLevel: indentationLevel) + } } override func addChildTag(toGPX gpx: NSMutableString, indentationLevel: Int) { @@ -76,5 +79,11 @@ open class GPXExtensionsElement: GPXElement, Codable { } } + + override func addCloseTag(toGPX gpx: NSMutableString, indentationLevel: Int) { + if text == nil { + gpx.appendCloseTag(indentation: indent(forIndentationLevel: indentationLevel), tag: tagName()) + } + } }