diff --git a/Classes/Dependencies/TBXML/TBXML+Compression.h b/Classes/Dependencies/TBXML/TBXML+Compression.h deleted file mode 100644 index cc20817..0000000 --- a/Classes/Dependencies/TBXML/TBXML+Compression.h +++ /dev/null @@ -1,63 +0,0 @@ -@interface NSData (TBXML_Compression) - -// ================================================================================================ -// Created by Tom Bradley on 21/10/2009. -// Version 1.5 -// -// Copyright 2012 71Squared All rights reserved. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. -// ================================================================================================ - -+ (NSData *) dataWithUncompressedContentsOfFile:(NSString *)aFile; - - - -// ================================================================================================ -// base64.h -// ViewTransitions -// -// Created by Neo on 5/11/08. -// Copyright 2008 Kaliware, LLC. All rights reserved. -// -// FOUND HERE http://idevkit.com/forums/tutorials-code-samples-sdk/8-nsdata-base64-extension.html -// ================================================================================================ -+ (NSData *) dataWithBase64EncodedString:(NSString *) string; -- (id) initWithBase64EncodedString:(NSString *) string; - -- (NSString *) base64Encoding; -- (NSString *) base64EncodingWithLineLength:(unsigned int) lineLength; - - - -// ================================================================================================ -// NSData+gzip.h -// Drip -// -// Created by Nur Monson on 8/21/07. -// Copyright 2007 theidiotproject. All rights reserved. -// -// FOUND HERE http://code.google.com/p/drop-osx/source/browse/trunk/Source/NSData%2Bgzip.h -// ================================================================================================ -- (NSData *)gzipDeflate; -- (NSData *)gzipInflate; - - - -@end \ No newline at end of file diff --git a/Classes/Dependencies/TBXML/TBXML+Compression.m b/Classes/Dependencies/TBXML/TBXML+Compression.m deleted file mode 100644 index 759d17a..0000000 --- a/Classes/Dependencies/TBXML/TBXML+Compression.m +++ /dev/null @@ -1,308 +0,0 @@ - -#import "TBXML+Compression.h" -#import - - -@implementation NSData (TBXML_Compression) - -// ================================================================================================ -// Created by Tom Bradley on 21/10/2009. -// Version 1.5 -// -// Copyright 2012 71Squared All rights reserved. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. -// ================================================================================================ - -+ (NSData *) dataWithUncompressedContentsOfFile:(NSString *)aFile { - - NSData * result; - - if ([[aFile pathExtension] isEqualToString:@"gz"]) { - NSData * compressedData = [NSData dataWithContentsOfFile:aFile]; - result = [compressedData gzipInflate]; - } - else - result = [NSData dataWithContentsOfFile:aFile]; - - return result; -} - - - - - -// ================================================================================================ -// base64.m -// ViewTransitions -// -// Created by Neo on 5/11/08. -// Copyright 2008 Kaliware, LLC. All rights reserved. -// -// Created by khammond on Mon Oct 29 2001. -// Formatted by Timothy Hatcher on Sun Jul 4 2004. -// Copyright (c) 2001 Kyle Hammond. All rights reserved. -// Original development by Dave Winer. -// -// FOUND HERE http://idevkit.com/forums/tutorials-code-samples-sdk/8-nsdata-base64-extension.html -// ================================================================================================ - -static char encodingTable[64] = { - 'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P', - 'Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f', - 'g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v', - 'w','x','y','z','0','1','2','3','4','5','6','7','8','9','+','/' }; - - -+ (NSData *) dataWithBase64EncodedString:(NSString *) string { - NSData *result = [[NSData alloc] initWithBase64EncodedString:string]; - return result; -} - -- (id) initWithBase64EncodedString:(NSString *) string { - NSMutableData *mutableData = nil; - - if( string ) { - unsigned long ixtext = 0; - unsigned long lentext = 0; - unsigned char ch = 0; - unsigned char inbuf[4], outbuf[3]; - short i = 0, ixinbuf = 0; - BOOL flignore = NO; - BOOL flendtext = NO; - NSData *base64Data = nil; - const unsigned char *base64Bytes = nil; - - // Convert the string to ASCII data. - base64Data = [string dataUsingEncoding:NSASCIIStringEncoding]; - base64Bytes = [base64Data bytes]; - mutableData = [NSMutableData dataWithCapacity:[base64Data length]]; - lentext = [base64Data length]; - - while( YES ) { - if( ixtext >= lentext ) break; - ch = base64Bytes[ixtext++]; - flignore = NO; - - if( ( ch >= 'A' ) && ( ch <= 'Z' ) ) ch = ch - 'A'; - else if( ( ch >= 'a' ) && ( ch <= 'z' ) ) ch = ch - 'a' + 26; - else if( ( ch >= '0' ) && ( ch <= '9' ) ) ch = ch - '0' + 52; - else if( ch == '+' ) ch = 62; - else if( ch == '=' ) flendtext = YES; - else if( ch == '/' ) ch = 63; - else flignore = YES; - - if( ! flignore ) { - short ctcharsinbuf = 3; - BOOL flbreak = NO; - - if( flendtext ) { - if( ! ixinbuf ) break; - if( ( ixinbuf == 1 ) || ( ixinbuf == 2 ) ) ctcharsinbuf = 1; - else ctcharsinbuf = 2; - ixinbuf = 3; - flbreak = YES; - } - - inbuf [ixinbuf++] = ch; - - if( ixinbuf == 4 ) { - ixinbuf = 0; - outbuf [0] = ( inbuf[0] << 2 ) | ( ( inbuf[1] & 0x30) >> 4 ); - outbuf [1] = ( ( inbuf[1] & 0x0F ) << 4 ) | ( ( inbuf[2] & 0x3C ) >> 2 ); - outbuf [2] = ( ( inbuf[2] & 0x03 ) << 6 ) | ( inbuf[3] & 0x3F ); - - for( i = 0; i < ctcharsinbuf; i++ ) - [mutableData appendBytes:&outbuf[i] length:1]; - } - - if( flbreak ) break; - } - } - } - - self = [self initWithData:mutableData]; - return self; -} - -#pragma mark - - -- (NSString *) base64Encoding { - return [self base64EncodingWithLineLength:0]; -} - -- (NSString *) base64EncodingWithLineLength:(unsigned int) lineLength { - const unsigned char *bytes = [self bytes]; - NSMutableString *result = [NSMutableString stringWithCapacity:[self length]]; - unsigned long ixtext = 0; - unsigned long lentext = [self length]; - long ctremaining = 0; - unsigned char inbuf[3], outbuf[4]; - short i = 0; - short charsonline = 0, ctcopy = 0; - unsigned long ix = 0; - - while( YES ) { - ctremaining = lentext - ixtext; - if( ctremaining <= 0 ) break; - - for( i = 0; i < 3; i++ ) { - ix = ixtext + i; - if( ix < lentext ) inbuf[i] = bytes[ix]; - else inbuf [i] = 0; - } - - outbuf [0] = (inbuf [0] & 0xFC) >> 2; - outbuf [1] = ((inbuf [0] & 0x03) << 4) | ((inbuf [1] & 0xF0) >> 4); - outbuf [2] = ((inbuf [1] & 0x0F) << 2) | ((inbuf [2] & 0xC0) >> 6); - outbuf [3] = inbuf [2] & 0x3F; - ctcopy = 4; - - switch( ctremaining ) { - case 1: - ctcopy = 2; - break; - case 2: - ctcopy = 3; - break; - } - - for( i = 0; i < ctcopy; i++ ) - [result appendFormat:@"%c", encodingTable[outbuf[i]]]; - - for( i = ctcopy; i < 4; i++ ) - [result appendFormat:@"%c",'=']; - - ixtext += 3; - charsonline += 4; - - if( lineLength > 0 ) { - if (charsonline >= lineLength) { - charsonline = 0; - [result appendString:@"\n"]; - } - } - } - - return result; -} - - - -// ================================================================================================ -// NSData+gzip.m -// Drip -// -// Created by Nur Monson on 8/21/07. -// Copyright 2007 theidiotproject. All rights reserved. -// -// FOUND HERE http://code.google.com/p/drop-osx/source/browse/trunk/Source/NSData%2Bgzip.m -// -// Also Check http://deusty.blogspot.com/2007/07/gzip-compressiondecompression.html -// ================================================================================================ - -#pragma mark - -#pragma mark GZIP - -- (NSData *)gzipDeflate -{ - if ([self length] == 0) return self; - - z_stream strm; - - strm.zalloc = Z_NULL; - strm.zfree = Z_NULL; - strm.opaque = Z_NULL; - strm.total_out = 0; - strm.next_in=(Bytef *)[self bytes]; - strm.avail_in = [self length]; - - // Compresssion Levels: - // Z_NO_COMPRESSION - // Z_BEST_SPEED - // Z_BEST_COMPRESSION - // Z_DEFAULT_COMPRESSION - - if (deflateInit2(&strm, Z_DEFAULT_COMPRESSION, Z_DEFLATED, (15+16), 8, Z_DEFAULT_STRATEGY) != Z_OK) return nil; - - NSMutableData *compressed = [NSMutableData dataWithLength:16384]; // 16K chunks for expansion - - do { - - if (strm.total_out >= [compressed length]) - [compressed increaseLengthBy: 16384]; - - strm.next_out = [compressed mutableBytes] + strm.total_out; - strm.avail_out = [compressed length] - strm.total_out; - - deflate(&strm, Z_FINISH); - - } while (strm.avail_out == 0); - - deflateEnd(&strm); - - [compressed setLength: strm.total_out]; - return [NSData dataWithData:compressed]; -} - -- (NSData *)gzipInflate -{ - if ([self length] == 0) return self; - - unsigned full_length = [self length]; - unsigned half_length = [self length] / 2; - - NSMutableData *decompressed = [NSMutableData dataWithLength: full_length + half_length]; - BOOL done = NO; - int status; - - z_stream strm; - strm.next_in = (Bytef *)[self bytes]; - strm.avail_in = [self length]; - strm.total_out = 0; - strm.zalloc = Z_NULL; - strm.zfree = Z_NULL; - - if (inflateInit2(&strm, (15+32)) != Z_OK) return nil; - while (!done) - { - // Make sure we have enough room and reset the lengths. - if (strm.total_out >= [decompressed length]) - [decompressed increaseLengthBy: half_length]; - strm.next_out = [decompressed mutableBytes] + strm.total_out; - strm.avail_out = [decompressed length] - strm.total_out; - - // Inflate another chunk. - status = inflate (&strm, Z_SYNC_FLUSH); - if (status == Z_STREAM_END) done = YES; - else if (status != Z_OK) break; - } - if (inflateEnd (&strm) != Z_OK) return nil; - - // Set real length. - if (done) - { - [decompressed setLength: strm.total_out]; - return [NSData dataWithData: decompressed]; - } - else return nil; -} - -@end - diff --git a/Classes/Dependencies/TBXML/TBXML+HTTP.h b/Classes/Dependencies/TBXML/TBXML+HTTP.h deleted file mode 100644 index 3d4eba7..0000000 --- a/Classes/Dependencies/TBXML/TBXML+HTTP.h +++ /dev/null @@ -1,35 +0,0 @@ -// -// TBXML+HTTP.h -// -// Created by Tom Bradley on 29/01/2011. -// Copyright 2012 71Squared All rights reserved. -// - -#import "TBXML.h" - -typedef void (^TBXMLAsyncRequestSuccessBlock)(NSData *,NSURLResponse *); -typedef void (^TBXMLAsyncRequestFailureBlock)(NSData *,NSError *); - -@interface NSMutableURLRequest (TBXML_HTTP) - -+ (NSMutableURLRequest*) tbxmlGetRequestWithURL:(NSURL*)url; -+ (NSMutableURLRequest*) tbxmlPostRequestWithURL:(NSURL*)url parameters:(NSDictionary*)parameters; - -@end - - -@interface NSURLConnection (TBXML_HTTP) - -+ (void)tbxmlAsyncRequest:(NSURLRequest *)request success:(TBXMLAsyncRequestSuccessBlock)successBlock failure:(TBXMLAsyncRequestFailureBlock)failureBlock; - -@end - - -@interface TBXML (TBXML_HTTP) - -+ (id)tbxmlWithURL:(NSURL*)aURL success:(TBXMLSuccessBlock)successBlock failure:(TBXMLFailureBlock)failureBlock; -- (id)initWithURL:(NSURL*)aURL success:(TBXMLSuccessBlock)successBlock failure:(TBXMLFailureBlock)failureBlock; - -@end - - diff --git a/Classes/Dependencies/TBXML/TBXML+HTTP.m b/Classes/Dependencies/TBXML/TBXML+HTTP.m deleted file mode 100644 index fa3aeff..0000000 --- a/Classes/Dependencies/TBXML/TBXML+HTTP.m +++ /dev/null @@ -1,104 +0,0 @@ -// -// TBXML+HTTP.m -// -// Created by Tom Bradley on 29/01/2011. -// Copyright 2012 71Squared All rights reserved. -// - -#import "TBXML+HTTP.h" - -@implementation NSMutableURLRequest (TBXML_HTTP) - - -+ (NSMutableURLRequest*) tbxmlGetRequestWithURL:(NSURL*)url { - - NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; - [request setURL:url]; - [request setHTTPMethod:@"GET"]; - - return request; -} - -+ (NSMutableURLRequest*) tbxmlPostRequestWithURL:(NSURL*)url parameters:(NSDictionary*)parameters { - - NSMutableArray * params = [NSMutableArray new]; - - for (NSString * key in [parameters allKeys]) { - [params addObject:[NSString stringWithFormat:@"%@=%@", key, [parameters objectForKey:key]]]; - } - - NSData * postData = [[params componentsJoinedByString:@"&"] dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; - NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]]; - - NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; - [request setURL:url]; - [request setHTTPMethod:@"POST"]; - [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; - [request setValue:postLength forHTTPHeaderField:@"Content-Length"]; - [request setHTTPBody:postData]; - - return request; -} - -@end - - -@implementation NSURLConnection (TBXML_HTTP) - -+ (void)tbxmlAsyncRequest:(NSURLRequest *)request success:(TBXMLAsyncRequestSuccessBlock)successBlock failure:(TBXMLAsyncRequestFailureBlock)failureBlock { - - dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ - - @autoreleasepool { - NSURLResponse *response = nil; - NSError *error = nil; - NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; - - if (error) { - failureBlock(data,error); - } else { - successBlock(data,response); - } - } - }); -} - -@end - - -@implementation TBXML (TBXML_HTTP) - -+ (id)tbxmlWithURL:(NSURL*)aURL success:(TBXMLSuccessBlock)successBlock failure:(TBXMLFailureBlock)failureBlock { - return [[TBXML alloc] initWithURL:aURL success:successBlock failure:failureBlock]; -} - -- (id)initWithURL:(NSURL*)aURL success:(TBXMLSuccessBlock)successBlock failure:(TBXMLFailureBlock)failureBlock { - self = [self init]; - if (self != nil) { - - TBXMLAsyncRequestSuccessBlock requestSuccessBlock = ^(NSData *data, NSURLResponse *response) { - - NSError *error = nil; - [self decodeData:data withError:&error]; - - // If TBXML found a root node, process element and iterate all children - if (!error) { - successBlock(self); - } else { - failureBlock(self, error); - } - }; - - TBXMLAsyncRequestFailureBlock requestFailureBlock = ^(NSData *data, NSError *error) { - failureBlock(self, error); - }; - - - [NSURLConnection tbxmlAsyncRequest:[NSMutableURLRequest tbxmlGetRequestWithURL:aURL] - success:requestSuccessBlock - failure:requestFailureBlock]; - } - return self; -} - -@end \ No newline at end of file diff --git a/Classes/Dependencies/TBXML/TBXML.h b/Classes/Dependencies/TBXML/TBXML.h deleted file mode 100644 index 0f7d0bf..0000000 --- a/Classes/Dependencies/TBXML/TBXML.h +++ /dev/null @@ -1,208 +0,0 @@ -// ================================================================================================ -// TBXML.h -// Fast processing of XML files -// -// ================================================================================================ -// Created by Tom Bradley on 21/10/2009. -// Version 1.5 -// -// Copyright 2012 71Squared All rights reserved.b -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. -// ================================================================================================ - -@class TBXML; - - -// ================================================================================================ -// Error Codes -// ================================================================================================ -enum TBXMLErrorCodes { - D_TBXML_DATA_NIL, - D_TBXML_DECODE_FAILURE, - D_TBXML_MEMORY_ALLOC_FAILURE, - D_TBXML_FILE_NOT_FOUND_IN_BUNDLE, - - D_TBXML_ELEMENT_IS_NIL, - D_TBXML_ELEMENT_NAME_IS_NIL, - D_TBXML_ELEMENT_NOT_FOUND, - D_TBXML_ELEMENT_TEXT_IS_NIL, - D_TBXML_ATTRIBUTE_IS_NIL, - D_TBXML_ATTRIBUTE_NAME_IS_NIL, - D_TBXML_ATTRIBUTE_NOT_FOUND, - D_TBXML_PARAM_NAME_IS_NIL -}; - - -// ================================================================================================ -// Defines -// ================================================================================================ -#define D_TBXML_DOMAIN @"com.71squared.tbxml" - -#define MAX_ELEMENTS 100 -#define MAX_ATTRIBUTES 100 - -#define TBXML_ATTRIBUTE_NAME_START 0 -#define TBXML_ATTRIBUTE_NAME_END 1 -#define TBXML_ATTRIBUTE_VALUE_START 2 -#define TBXML_ATTRIBUTE_VALUE_END 3 -#define TBXML_ATTRIBUTE_CDATA_END 4 - -// ================================================================================================ -// Structures -// ================================================================================================ - -/** The TBXMLAttribute structure holds information about a single XML attribute. The structure holds the attribute name, value and next sibling attribute. This structure allows us to create a linked list of attributes belonging to a specific element. - */ -typedef struct _TBXMLAttribute { - char * name; - char * value; - struct _TBXMLAttribute * next; -} TBXMLAttribute; - - - -/** The TBXMLElement structure holds information about a single XML element. The structure holds the element name & text along with pointers to the first attribute, parent element, first child element and first sibling element. Using this structure, we can create a linked list of TBXMLElements to map out an entire XML file. - */ -typedef struct _TBXMLElement { - char * name; - char * text; - - TBXMLAttribute * firstAttribute; - - struct _TBXMLElement * parentElement; - - struct _TBXMLElement * firstChild; - struct _TBXMLElement * currentChild; - - struct _TBXMLElement * nextSibling; - struct _TBXMLElement * previousSibling; - -} TBXMLElement; - -/** The TBXMLElementBuffer is a structure that holds a buffer of TBXMLElements. When the buffer of elements is used, an additional buffer is created and linked to the previous one. This allows for efficient memory allocation/deallocation elements. - */ -typedef struct _TBXMLElementBuffer { - TBXMLElement * elements; - struct _TBXMLElementBuffer * next; - struct _TBXMLElementBuffer * previous; -} TBXMLElementBuffer; - - - -/** The TBXMLAttributeBuffer is a structure that holds a buffer of TBXMLAttributes. When the buffer of attributes is used, an additional buffer is created and linked to the previous one. This allows for efficient memeory allocation/deallocation of attributes. - */ -typedef struct _TBXMLAttributeBuffer { - TBXMLAttribute * attributes; - struct _TBXMLAttributeBuffer * next; - struct _TBXMLAttributeBuffer * previous; -} TBXMLAttributeBuffer; - - -// ================================================================================================ -// Block Callbacks -// ================================================================================================ -typedef void (^TBXMLSuccessBlock)(TBXML *); -typedef void (^TBXMLFailureBlock)(TBXML *, NSError *); -typedef void (^TBXMLIterateBlock)(TBXMLElement *); -typedef void (^TBXMLIterateAttributeBlock)(TBXMLAttribute *, NSString*, NSString*); - - -// ================================================================================================ -// TBXML Public Interface -// ================================================================================================ - -@interface TBXML : NSObject { - -@private - TBXMLElement * rootXMLElement; - - TBXMLElementBuffer * currentElementBuffer; - TBXMLAttributeBuffer * currentAttributeBuffer; - - long currentElement; - long currentAttribute; - - char * bytes; - long bytesLength; -} - - -@property (nonatomic, readonly) TBXMLElement * rootXMLElement; - -+ (id)tbxmlWithXMLString:(NSString*)aXMLString error:(NSError **)error; -+ (id)tbxmlWithXMLData:(NSData*)aData error:(NSError **)error; -+ (id)tbxmlWithXMLFile:(NSString*)aXMLFile error:(NSError **)error; -+ (id)tbxmlWithXMLFile:(NSString*)aXMLFile fileExtension:(NSString*)aFileExtension error:(NSError **)error; - -+ (id)tbxmlWithXMLString:(NSString*)aXMLString __attribute__((deprecated)); -+ (id)tbxmlWithXMLData:(NSData*)aData __attribute__((deprecated)); -+ (id)tbxmlWithXMLFile:(NSString*)aXMLFile __attribute__((deprecated)); -+ (id)tbxmlWithXMLFile:(NSString*)aXMLFile fileExtension:(NSString*)aFileExtension __attribute__((deprecated)); - - -- (id)initWithXMLString:(NSString*)aXMLString error:(NSError **)error; -- (id)initWithXMLData:(NSData*)aData error:(NSError **)error; -- (id)initWithXMLFile:(NSString*)aXMLFile error:(NSError **)error; -- (id)initWithXMLFile:(NSString*)aXMLFile fileExtension:(NSString*)aFileExtension error:(NSError **)error; - -- (id)initWithXMLString:(NSString*)aXMLString __attribute__((deprecated)); -- (id)initWithXMLData:(NSData*)aData __attribute__((deprecated)); -- (id)initWithXMLFile:(NSString*)aXMLFile __attribute__((deprecated)); -- (id)initWithXMLFile:(NSString*)aXMLFile fileExtension:(NSString*)aFileExtension __attribute__((deprecated)); - - -- (void) decodeData:(NSData*)data; -- (void) decodeData:(NSData*)data withError:(NSError **)error; - -@end - -// ================================================================================================ -// TBXML Static Functions Interface -// ================================================================================================ - -@interface TBXML (StaticFunctions) - -+ (NSString*) elementName:(TBXMLElement*)aXMLElement; -+ (NSString*) elementName:(TBXMLElement*)aXMLElement error:(NSError **)error; -+ (NSString*) textForElement:(TBXMLElement*)aXMLElement; -+ (NSString*) textForElement:(TBXMLElement*)aXMLElement error:(NSError **)error; -+ (NSString*) valueOfAttributeNamed:(NSString *)aName forElement:(TBXMLElement*)aXMLElement; -+ (NSString*) valueOfAttributeNamed:(NSString *)aName forElement:(TBXMLElement*)aXMLElement error:(NSError **)error; - -+ (NSString*) attributeName:(TBXMLAttribute*)aXMLAttribute; -+ (NSString*) attributeName:(TBXMLAttribute*)aXMLAttribute error:(NSError **)error; -+ (NSString*) attributeValue:(TBXMLAttribute*)aXMLAttribute; -+ (NSString*) attributeValue:(TBXMLAttribute*)aXMLAttribute error:(NSError **)error; - -+ (TBXMLElement*) nextSiblingNamed:(NSString*)aName searchFromElement:(TBXMLElement*)aXMLElement; -+ (TBXMLElement*) childElementNamed:(NSString*)aName parentElement:(TBXMLElement*)aParentXMLElement; - -+ (TBXMLElement*) nextSiblingNamed:(NSString*)aName searchFromElement:(TBXMLElement*)aXMLElement error:(NSError **)error; -+ (TBXMLElement*) childElementNamed:(NSString*)aName parentElement:(TBXMLElement*)aParentXMLElement error:(NSError **)error; - -/** Iterate through all elements found using query. - - Inspiration taken from John Blanco's RaptureXML https://github.com/ZaBlanc/RaptureXML - */ -+ (void)iterateElementsForQuery:(NSString *)query fromElement:(TBXMLElement *)anElement withBlock:(TBXMLIterateBlock)iterateBlock; -+ (void)iterateAttributesOfElement:(TBXMLElement *)anElement withBlock:(TBXMLIterateAttributeBlock)iterateBlock; - - -@end diff --git a/Classes/Dependencies/TBXML/TBXML.m b/Classes/Dependencies/TBXML/TBXML.m deleted file mode 100644 index 7623154..0000000 --- a/Classes/Dependencies/TBXML/TBXML.m +++ /dev/null @@ -1,934 +0,0 @@ -// ================================================================================================ -// TBXML.m -// Fast processing of XML files -// -// ================================================================================================ -// Created by Tom Bradley on 21/10/2009. -// Version 1.5 -// -// Copyright 2012 71Squared All rights reserved. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. -// ================================================================================================ -#import "TBXML.h" - -// ================================================================================================ -// Private methods -// ================================================================================================ -@interface TBXML (Private) -+ (NSString *) errorTextForCode:(int)code; -+ (NSError *) errorWithCode:(int)code; -+ (NSError *) errorWithCode:(int)code userInfo:(NSDictionary *)userInfo; -- (void) decodeBytes; -- (void) allocateBytesOfLength:(long)length error:(NSError **)error; -- (TBXMLElement*) nextAvailableElement; -- (TBXMLAttribute*) nextAvailableAttribute; -@end - -// ================================================================================================ -// Public Implementation -// ================================================================================================ -@implementation TBXML - -@synthesize rootXMLElement; - -+ (id)tbxmlWithXMLString:(NSString*)aXMLString { - return [[TBXML alloc] initWithXMLString:aXMLString]; -} - -+ (id)tbxmlWithXMLString:(NSString*)aXMLString error:(NSError *__autoreleasing *)error { - return [[TBXML alloc] initWithXMLString:aXMLString error:error]; -} - -+ (id)tbxmlWithXMLData:(NSData*)aData { - return [[TBXML alloc] initWithXMLData:aData]; -} - -+ (id)tbxmlWithXMLData:(NSData*)aData error:(NSError *__autoreleasing *)error { - return [[TBXML alloc] initWithXMLData:aData error:error]; -} - -+ (id)tbxmlWithXMLFile:(NSString*)aXMLFile { - return [[TBXML alloc] initWithXMLFile:aXMLFile]; -} - -+ (id)tbxmlWithXMLFile:(NSString*)aXMLFile error:(NSError *__autoreleasing *)error { - return [[TBXML alloc] initWithXMLFile:aXMLFile error:error]; -} - -+ (id)tbxmlWithXMLFile:(NSString*)aXMLFile fileExtension:(NSString*)aFileExtension { - return [[TBXML alloc] initWithXMLFile:aXMLFile fileExtension:aFileExtension]; -} - -+ (id)tbxmlWithXMLFile:(NSString*)aXMLFile fileExtension:(NSString*)aFileExtension error:(NSError *__autoreleasing *)error { - return [[TBXML alloc] initWithXMLFile:aXMLFile fileExtension:aFileExtension error:error]; -} - -- (id)init { - self = [super init]; - if (self != nil) { - rootXMLElement = nil; - - currentElementBuffer = 0; - currentAttributeBuffer = 0; - - currentElement = 0; - currentAttribute = 0; - - bytes = 0; - bytesLength = 0; - } - return self; -} -- (id)initWithXMLString:(NSString*)aXMLString { - return [self initWithXMLString:aXMLString error:nil]; -} - -- (id)initWithXMLString:(NSString*)aXMLString error:(NSError *__autoreleasing *)error { - self = [self init]; - if (self != nil) { - - - // allocate memory for byte array - [self allocateBytesOfLength:[aXMLString lengthOfBytesUsingEncoding:NSUTF8StringEncoding] error:error]; - - // if an error occured, return - if (error && *error != nil) - return self; - - // copy string to byte array - [aXMLString getBytes:bytes maxLength:bytesLength usedLength:0 encoding:NSUTF8StringEncoding options:NSStringEncodingConversionAllowLossy range:NSMakeRange(0, bytesLength) remainingRange:nil]; - - // set null terminator at end of byte array - bytes[bytesLength] = 0; - - // decode xml data - [self decodeBytes]; - - // Check for root element - if (error && !*error && !self.rootXMLElement) { - *error = [TBXML errorWithCode:D_TBXML_DECODE_FAILURE]; - } - } - return self; -} - -- (id)initWithXMLData:(NSData*)aData { - return [self initWithXMLData:aData error:nil]; -} - -- (id)initWithXMLData:(NSData*)aData error:(NSError **)error { - self = [self init]; - if (self != nil) { - // decode aData - [self decodeData:aData withError:error]; - } - - return self; -} - -- (id)initWithXMLFile:(NSString*)aXMLFile { - return [self initWithXMLFile:aXMLFile error:nil]; -} - -- (id)initWithXMLFile:(NSString*)aXMLFile error:(NSError **)error { - NSString * filename = [aXMLFile stringByDeletingPathExtension]; - NSString * extension = [aXMLFile pathExtension]; - - self = [self initWithXMLFile:filename fileExtension:extension error:error]; - if (self != nil) { - - } - return self; -} - -- (id)initWithXMLFile:(NSString*)aXMLFile fileExtension:(NSString*)aFileExtension { - return [self initWithXMLFile:aXMLFile fileExtension:aFileExtension error:nil]; -} - -- (id)initWithXMLFile:(NSString*)aXMLFile fileExtension:(NSString*)aFileExtension error:(NSError **)error { - self = [self init]; - if (self != nil) { - - NSData * data; - - // Get the bundle that this class resides in. This allows to load resources from the app bundle when running unit tests. - NSString * bundlePath = [[NSBundle bundleForClass:[self class]] pathForResource:aXMLFile ofType:aFileExtension]; - - if (!bundlePath) { - if (error) { - NSDictionary * userInfo = [NSDictionary dictionaryWithObjectsAndKeys:[aXMLFile stringByAppendingPathExtension:aFileExtension], NSFilePathErrorKey, nil]; - *error = [TBXML errorWithCode:D_TBXML_FILE_NOT_FOUND_IN_BUNDLE userInfo:userInfo]; - } - } else { - SEL dataWithUncompressedContentsOfFile = NSSelectorFromString(@"dataWithUncompressedContentsOfFile:"); - - // Get uncompressed file contents if TBXML+Compression has been included - if ([[NSData class] respondsToSelector:dataWithUncompressedContentsOfFile]) { - - #pragma clang diagnostic push - #pragma clang diagnostic ignored "-Warc-performSelector-leaks" - data = [[NSData class] performSelector:dataWithUncompressedContentsOfFile withObject:bundlePath]; - #pragma clang diagnostic pop - - } else { - data = [NSData dataWithContentsOfFile:bundlePath]; - } - - // decode data - [self decodeData:data withError:error]; - - // Check for root element - if (error && !*error && !self.rootXMLElement) { - *error = [TBXML errorWithCode:D_TBXML_DECODE_FAILURE]; - } - } - } - return self; -} - -- (void) decodeData:(NSData*)data { - [self decodeData:data withError:nil]; -} - -- (void) decodeData:(NSData*)data withError:(NSError **)error { - - // allocate memory for byte array - [self allocateBytesOfLength:[data length] error:error]; - - // if an error occured, return - if (error && *error) - return; - - // copy data to byte array - [data getBytes:bytes length:bytesLength]; - - // set null terminator at end of byte array - bytes[bytesLength] = 0; - - // decode xml data - [self decodeBytes]; - - if (!self.rootXMLElement) { - *error = [TBXML errorWithCode:D_TBXML_DECODE_FAILURE]; - } -} - -@end - - -// ================================================================================================ -// Static Functions Implementation -// ================================================================================================ - -#pragma mark - -#pragma mark Static Functions implementation - -@implementation TBXML (StaticFunctions) - -+ (NSString*) elementName:(TBXMLElement*)aXMLElement { - if (nil == aXMLElement->name) return @""; - return [NSString stringWithCString:&aXMLElement->name[0] encoding:NSUTF8StringEncoding]; -} - -+ (NSString*) elementName:(TBXMLElement*)aXMLElement error:(NSError **)error { - // check for nil element - if (nil == aXMLElement) { - *error = [TBXML errorWithCode:D_TBXML_ELEMENT_IS_NIL]; - return @""; - } - - // check for nil element name - if (nil == aXMLElement->name || strlen(aXMLElement->name) == 0) { - *error = [TBXML errorWithCode:D_TBXML_ELEMENT_NAME_IS_NIL]; - return @""; - } - - return [NSString stringWithCString:&aXMLElement->name[0] encoding:NSUTF8StringEncoding]; -} - -+ (NSString*) attributeName:(TBXMLAttribute*)aXMLAttribute { - if (nil == aXMLAttribute->name) return @""; - return [NSString stringWithCString:&aXMLAttribute->name[0] encoding:NSUTF8StringEncoding]; -} - -+ (NSString*) attributeName:(TBXMLAttribute*)aXMLAttribute error:(NSError **)error { - // check for nil attribute - if (nil == aXMLAttribute) { - *error = [TBXML errorWithCode:D_TBXML_ATTRIBUTE_IS_NIL]; - return @""; - } - - // check for nil attribute name - if (nil == aXMLAttribute->name) { - *error = [TBXML errorWithCode:D_TBXML_ATTRIBUTE_NAME_IS_NIL]; - return @""; - } - - return [NSString stringWithCString:&aXMLAttribute->name[0] encoding:NSUTF8StringEncoding]; -} - - -+ (NSString*) attributeValue:(TBXMLAttribute*)aXMLAttribute { - if (nil == aXMLAttribute->value) return @""; - return [NSString stringWithCString:&aXMLAttribute->value[0] encoding:NSUTF8StringEncoding]; -} - -+ (NSString*) attributeValue:(TBXMLAttribute*)aXMLAttribute error:(NSError **)error { - // check for nil attribute - if (nil == aXMLAttribute) { - *error = [TBXML errorWithCode:D_TBXML_ATTRIBUTE_IS_NIL]; - return @""; - } - - return [NSString stringWithCString:&aXMLAttribute->value[0] encoding:NSUTF8StringEncoding]; -} - -+ (NSString*) textForElement:(TBXMLElement*)aXMLElement { - if (nil == aXMLElement->text) return @""; - return [NSString stringWithCString:&aXMLElement->text[0] encoding:NSUTF8StringEncoding]; -} - -+ (NSString*) textForElement:(TBXMLElement*)aXMLElement error:(NSError **)error { - // check for nil element - if (nil == aXMLElement) { - *error = [TBXML errorWithCode:D_TBXML_ELEMENT_IS_NIL]; - return @""; - } - - // check for nil text value - if (nil == aXMLElement->text || strlen(aXMLElement->text) == 0) { - *error = [TBXML errorWithCode:D_TBXML_ELEMENT_TEXT_IS_NIL]; - return @""; - } - - return [NSString stringWithCString:&aXMLElement->text[0] encoding:NSUTF8StringEncoding]; -} - -+ (NSString*) valueOfAttributeNamed:(NSString *)aName forElement:(TBXMLElement*)aXMLElement { - const char * name = [aName cStringUsingEncoding:NSUTF8StringEncoding]; - NSString * value = nil; - TBXMLAttribute * attribute = aXMLElement->firstAttribute; - while (attribute) { - if (strlen(attribute->name) == strlen(name) && memcmp(attribute->name,name,strlen(name)) == 0) { - value = [NSString stringWithCString:&attribute->value[0] encoding:NSUTF8StringEncoding]; - break; - } - attribute = attribute->next; - } - return value; -} - -+ (NSString*) valueOfAttributeNamed:(NSString *)aName forElement:(TBXMLElement*)aXMLElement error:(NSError **)error { - // check for nil element - if (nil == aXMLElement) { - *error = [TBXML errorWithCode:D_TBXML_ELEMENT_IS_NIL]; - return @""; - } - - // check for nil name parameter - if (nil == aName) { - *error = [TBXML errorWithCode:D_TBXML_ATTRIBUTE_NAME_IS_NIL]; - return @""; - } - - const char * name = [aName cStringUsingEncoding:NSUTF8StringEncoding]; - NSString * value = nil; - - TBXMLAttribute * attribute = aXMLElement->firstAttribute; - while (attribute) { - if (strlen(attribute->name) == strlen(name) && memcmp(attribute->name,name,strlen(name)) == 0) { - if (attribute->value[0]) - value = [NSString stringWithCString:&attribute->value[0] encoding:NSUTF8StringEncoding]; - else - value = [NSString stringWithString:@""]; - - break; - } - attribute = attribute->next; - } - - // check for attribute not found - if (!value) { - *error = [TBXML errorWithCode:D_TBXML_ATTRIBUTE_NOT_FOUND]; - return @""; - } - - return value; -} - -+ (TBXMLElement*) childElementNamed:(NSString*)aName parentElement:(TBXMLElement*)aParentXMLElement{ - - TBXMLElement * xmlElement = aParentXMLElement->firstChild; - const char * name = [aName cStringUsingEncoding:NSUTF8StringEncoding]; - while (xmlElement) { - if (strlen(xmlElement->name) == strlen(name) && memcmp(xmlElement->name,name,strlen(name)) == 0) { - return xmlElement; - } - xmlElement = xmlElement->nextSibling; - } - return nil; -} - -+ (TBXMLElement*) childElementNamed:(NSString*)aName parentElement:(TBXMLElement*)aParentXMLElement error:(NSError **)error { - // check for nil element - if (nil == aParentXMLElement) { - *error = [TBXML errorWithCode:D_TBXML_ELEMENT_IS_NIL]; - return nil; - } - - // check for nil name parameter - if (nil == aName) { - *error = [TBXML errorWithCode:D_TBXML_PARAM_NAME_IS_NIL]; - return nil; - } - - TBXMLElement * xmlElement = aParentXMLElement->firstChild; - const char * name = [aName cStringUsingEncoding:NSUTF8StringEncoding]; - while (xmlElement) { - if (strlen(xmlElement->name) == strlen(name) && memcmp(xmlElement->name,name,strlen(name)) == 0) { - return xmlElement; - } - xmlElement = xmlElement->nextSibling; - } - - *error = [TBXML errorWithCode:D_TBXML_ELEMENT_NOT_FOUND]; - - return nil; -} - -+ (TBXMLElement*) nextSiblingNamed:(NSString*)aName searchFromElement:(TBXMLElement*)aXMLElement{ - TBXMLElement * xmlElement = aXMLElement->nextSibling; - const char * name = [aName cStringUsingEncoding:NSUTF8StringEncoding]; - while (xmlElement) { - if (strlen(xmlElement->name) == strlen(name) && memcmp(xmlElement->name,name,strlen(name)) == 0) { - return xmlElement; - } - xmlElement = xmlElement->nextSibling; - } - return nil; -} - -+ (TBXMLElement*) nextSiblingNamed:(NSString*)aName searchFromElement:(TBXMLElement*)aXMLElement error:(NSError **)error { - // check for nil element - if (nil == aXMLElement) { - *error = [TBXML errorWithCode:D_TBXML_ELEMENT_IS_NIL]; - return nil; - } - - // check for nil name parameter - if (nil == aName) { - *error = [TBXML errorWithCode:D_TBXML_PARAM_NAME_IS_NIL]; - return nil; - } - - TBXMLElement * xmlElement = aXMLElement->nextSibling; - const char * name = [aName cStringUsingEncoding:NSUTF8StringEncoding]; - while (xmlElement) { - if (strlen(xmlElement->name) == strlen(name) && memcmp(xmlElement->name,name,strlen(name)) == 0) { - return xmlElement; - } - xmlElement = xmlElement->nextSibling; - } - - *error = [TBXML errorWithCode:D_TBXML_ELEMENT_NOT_FOUND]; - - return nil; -} - -+ (void)iterateElementsForQuery:(NSString *)query fromElement:(TBXMLElement *)anElement withBlock:(TBXMLIterateBlock)iterateBlock { - - NSArray *components = [query componentsSeparatedByString:@"."]; - TBXMLElement *currTBXMLElement = anElement; - - // navigate down - for (NSInteger i=0; i < components.count; ++i) { - NSString *iTagName = [components objectAtIndex:i]; - - if ([iTagName isEqualToString:@"*"]) { - currTBXMLElement = currTBXMLElement->firstChild; - - // different behavior depending on if this is the end of the query or midstream - if (i < (components.count - 1)) { - // midstream - do { - NSString *restOfQuery = [[components subarrayWithRange:NSMakeRange(i + 1, components.count - i - 1)] componentsJoinedByString:@"."]; - [TBXML iterateElementsForQuery:restOfQuery fromElement:currTBXMLElement withBlock:iterateBlock]; - } while ((currTBXMLElement = currTBXMLElement->nextSibling)); - - } - } else { - currTBXMLElement = [TBXML childElementNamed:iTagName parentElement:currTBXMLElement]; - } - - if (!currTBXMLElement) { - break; - } - } - - if (currTBXMLElement) { - // enumerate - NSString *childTagName = [components lastObject]; - - if ([childTagName isEqualToString:@"*"]) { - childTagName = nil; - } - - do { - iterateBlock(currTBXMLElement); - } while ((currTBXMLElement = currTBXMLElement->nextSibling)); - } -} - -+ (void)iterateAttributesOfElement:(TBXMLElement *)anElement withBlock:(TBXMLIterateAttributeBlock)iterateAttributeBlock { - - // Obtain first attribute from element - TBXMLAttribute * attribute = anElement->firstAttribute; - - // if attribute is valid - - while (attribute) { - // Call the iterateAttributeBlock with the attribute, it's name and value - iterateAttributeBlock(attribute, [TBXML attributeName:attribute], [TBXML attributeValue:attribute]); - - // Obtain the next attribute - attribute = attribute->next; - } -} - -@end - - -// ================================================================================================ -// Private Implementation -// ================================================================================================ - -#pragma mark - -#pragma mark Private implementation - -@implementation TBXML (Private) - -+ (NSString *) errorTextForCode:(int)code { - NSString * codeText = @""; - - switch (code) { - case D_TBXML_DATA_NIL: codeText = @"Data is nil"; break; - case D_TBXML_DECODE_FAILURE: codeText = @"Decode failure"; break; - case D_TBXML_MEMORY_ALLOC_FAILURE: codeText = @"Unable to allocate memory"; break; - case D_TBXML_FILE_NOT_FOUND_IN_BUNDLE: codeText = @"File not found in bundle"; break; - - case D_TBXML_ELEMENT_IS_NIL: codeText = @"Element is nil"; break; - case D_TBXML_ELEMENT_NAME_IS_NIL: codeText = @"Element name is nil"; break; - case D_TBXML_ATTRIBUTE_IS_NIL: codeText = @"Attribute is nil"; break; - case D_TBXML_ATTRIBUTE_NAME_IS_NIL: codeText = @"Attribute name is nil"; break; - case D_TBXML_ELEMENT_TEXT_IS_NIL: codeText = @"Element text is nil"; break; - case D_TBXML_PARAM_NAME_IS_NIL: codeText = @"Parameter name is nil"; break; - case D_TBXML_ATTRIBUTE_NOT_FOUND: codeText = @"Attribute not found"; break; - case D_TBXML_ELEMENT_NOT_FOUND: codeText = @"Element not found"; break; - - default: codeText = @"No Error Description!"; break; - } - - return codeText; -} - -+ (NSError *) errorWithCode:(int)code { - - NSDictionary *userInfo = [NSDictionary dictionaryWithObjectsAndKeys:[TBXML errorTextForCode:code], NSLocalizedDescriptionKey, nil]; - - return [NSError errorWithDomain:D_TBXML_DOMAIN - code:code - userInfo:userInfo]; -} - -+ (NSError *) errorWithCode:(int)code userInfo:(NSMutableDictionary *)someUserInfo { - - NSMutableDictionary *userInfo = [NSMutableDictionary dictionaryWithDictionary:someUserInfo]; - [userInfo setValue:[TBXML errorTextForCode:code] forKey:NSLocalizedDescriptionKey]; - - return [NSError errorWithDomain:D_TBXML_DOMAIN - code:code - userInfo:userInfo]; -} - -- (void) allocateBytesOfLength:(long)length error:(NSError **)error { - bytesLength = length; - - if(!length) { - *error = [TBXML errorWithCode:D_TBXML_DATA_NIL]; - } - - bytes = malloc(bytesLength+1); - - if(!bytes) { - *error = [TBXML errorWithCode:D_TBXML_MEMORY_ALLOC_FAILURE]; - } -} - -- (void) decodeBytes { - - // ----------------------------------------------------------------------------- - // Process xml - // ----------------------------------------------------------------------------- - - // set elementStart pointer to the start of our xml - char * elementStart=bytes; - - // set parent element to nil - TBXMLElement * parentXMLElement = nil; - - // find next element start - while ((elementStart = strstr(elementStart,"<"))) { - - // detect comment section - if (strncmp(elementStart,"") + 3; - continue; - } - - // detect cdata section within element text - int isCDATA = strncmp(elementStart,""); - - // find start of next element skipping any cdata sections within text - char * elementEnd = CDATAEnd; - - // find next open tag - elementEnd = strstr(elementEnd,"<"); - // if open tag is a cdata section - while (strncmp(elementEnd,""); - // find next open tag - elementEnd = strstr(elementEnd,"<"); - } - - // calculate length of cdata content - long CDATALength = CDATAEnd-elementStart; - - // calculate total length of text - long textLength = elementEnd-elementStart; - - // remove begining cdata section tag - memcpy(elementStart, elementStart+9, CDATAEnd-elementStart-9); - - // remove ending cdata section tag - memcpy(CDATAEnd-9, CDATAEnd+3, textLength-CDATALength-3); - - // blank out end of text - memset(elementStart+textLength-12,' ',12); - - // set new search start position - elementStart = CDATAEnd-9; - continue; - } - - - // find element end, skipping any cdata sections within attributes - char * elementEnd = elementStart+1; - while ((elementEnd = strpbrk(elementEnd, "<>"))) { - if (strncmp(elementEnd,"")+3; - } else { - break; - } - } - - if (!elementEnd) break; - - // null terminate element end - if (elementEnd) *elementEnd = 0; - - // null terminate element start so previous element text doesnt overrun - *elementStart = 0; - - // get element name start - char * elementNameStart = elementStart+1; - - // ignore tags that start with ? or ! unless cdata "text) { - // trim whitespace from start of text - while (isspace(*parentXMLElement->text)) - parentXMLElement->text++; - - // trim whitespace from end of text - char * end = parentXMLElement->text + strlen(parentXMLElement->text)-1; - while (end > parentXMLElement->text && isspace(*end)) - *end--=0; - } - - parentXMLElement = parentXMLElement->parentElement; - - // if parent element has children clear text - if (parentXMLElement && parentXMLElement->firstChild) - parentXMLElement->text = 0; - - } - continue; - } - - - // is this element opening and closing - BOOL selfClosingElement = NO; - if (*(elementEnd-1) == '/') { - selfClosingElement = YES; - } - - - // create new xmlElement struct - TBXMLElement * xmlElement = [self nextAvailableElement]; - - // set element name - xmlElement->name = elementNameStart; - - // if there is a parent element - if (parentXMLElement) { - - // if this is first child of parent element - if (parentXMLElement->currentChild) { - // set next child element in list - parentXMLElement->currentChild->nextSibling = xmlElement; - xmlElement->previousSibling = parentXMLElement->currentChild; - - parentXMLElement->currentChild = xmlElement; - - - } else { - // set first child element - parentXMLElement->currentChild = xmlElement; - parentXMLElement->firstChild = xmlElement; - } - - xmlElement->parentElement = parentXMLElement; - } - - - // in the following xml the ">" is replaced with \0 by elementEnd. - // element may contain no atributes and would return nil while looking for element name end - // - // find end of element name - char * elementNameEnd = strpbrk(xmlElement->name," /\n"); - - - // if end was found check for attributes - if (elementNameEnd) { - - // null terminate end of elemenet name - *elementNameEnd = 0; - - char * chr = elementNameEnd; - char * name = nil; - char * value = nil; - char * CDATAStart = nil; - char * CDATAEnd = nil; - TBXMLAttribute * lastXMLAttribute = nil; - TBXMLAttribute * xmlAttribute = nil; - BOOL singleQuote = NO; - - int mode = TBXML_ATTRIBUTE_NAME_START; - - // loop through all characters within element - while (chr++ < elementEnd) { - - switch (mode) { - // look for start of attribute name - case TBXML_ATTRIBUTE_NAME_START: - if (isspace(*chr)) continue; - name = chr; - mode = TBXML_ATTRIBUTE_NAME_END; - break; - // look for end of attribute name - case TBXML_ATTRIBUTE_NAME_END: - if (isspace(*chr) || *chr == '=') { - *chr = 0; - mode = TBXML_ATTRIBUTE_VALUE_START; - } - break; - // look for start of attribute value - case TBXML_ATTRIBUTE_VALUE_START: - if (isspace(*chr)) continue; - if (*chr == '"' || *chr == '\'') { - value = chr+1; - mode = TBXML_ATTRIBUTE_VALUE_END; - if (*chr == '\'') - singleQuote = YES; - else - singleQuote = NO; - } - break; - // look for end of attribute value - case TBXML_ATTRIBUTE_VALUE_END: - if (*chr == '<' && strncmp(chr, ""); - - // remove end cdata tag - memcpy(CDATAEnd, CDATAEnd+3, strlen(CDATAEnd)-2); - } - - - // create new attribute - xmlAttribute = [self nextAvailableAttribute]; - - // if this is the first attribute found, set pointer to this attribute on element - if (!xmlElement->firstAttribute) xmlElement->firstAttribute = xmlAttribute; - // if previous attribute found, link this attribute to previous one - if (lastXMLAttribute) lastXMLAttribute->next = xmlAttribute; - // set last attribute to this attribute - lastXMLAttribute = xmlAttribute; - - // set attribute name & value - xmlAttribute->name = name; - xmlAttribute->value = value; - - // clear name and value pointers - name = nil; - value = nil; - - // start looking for next attribute - mode = TBXML_ATTRIBUTE_NAME_START; - } - break; - // look for end of cdata - case TBXML_ATTRIBUTE_CDATA_END: - if (*chr == ']') { - if (strncmp(chr, "]]>", 3) == 0) { - mode = TBXML_ATTRIBUTE_VALUE_END; - } - } - break; - default: - break; - } - } - } - - // if tag is not self closing, set parent to current element - if (!selfClosingElement) { - // set text on element to element end+1 - if (*(elementEnd+1) != '>') - xmlElement->text = elementEnd+1; - - parentXMLElement = xmlElement; - } - - // start looking for next element after end of current element - elementStart = elementEnd+1; - } -} - -// Deallocate used memory -- (void) dealloc { - - if (bytes) { - free(bytes); - bytes = nil; - } - - while (currentElementBuffer) { - if (currentElementBuffer->elements) - free(currentElementBuffer->elements); - - if (currentElementBuffer->previous) { - currentElementBuffer = currentElementBuffer->previous; - free(currentElementBuffer->next); - } else { - free(currentElementBuffer); - currentElementBuffer = 0; - } - } - - while (currentAttributeBuffer) { - if (currentAttributeBuffer->attributes) - free(currentAttributeBuffer->attributes); - - if (currentAttributeBuffer->previous) { - currentAttributeBuffer = currentAttributeBuffer->previous; - free(currentAttributeBuffer->next); - } else { - free(currentAttributeBuffer); - currentAttributeBuffer = 0; - } - } - -} - -- (TBXMLElement*) nextAvailableElement { - currentElement++; - - if (!currentElementBuffer) { - currentElementBuffer = calloc(1, sizeof(TBXMLElementBuffer)); - currentElementBuffer->elements = (TBXMLElement*)calloc(1,sizeof(TBXMLElement)*MAX_ELEMENTS); - currentElement = 0; - rootXMLElement = ¤tElementBuffer->elements[currentElement]; - } else if (currentElement >= MAX_ELEMENTS) { - currentElementBuffer->next = calloc(1, sizeof(TBXMLElementBuffer)); - currentElementBuffer->next->previous = currentElementBuffer; - currentElementBuffer = currentElementBuffer->next; - currentElementBuffer->elements = (TBXMLElement*)calloc(1,sizeof(TBXMLElement)*MAX_ELEMENTS); - currentElement = 0; - } - - return ¤tElementBuffer->elements[currentElement]; -} - -- (TBXMLAttribute*) nextAvailableAttribute { - currentAttribute++; - - if (!currentAttributeBuffer) { - currentAttributeBuffer = calloc(1, sizeof(TBXMLAttributeBuffer)); - currentAttributeBuffer->attributes = (TBXMLAttribute*)calloc(MAX_ATTRIBUTES,sizeof(TBXMLAttribute)); - currentAttribute = 0; - } else if (currentAttribute >= MAX_ATTRIBUTES) { - currentAttributeBuffer->next = calloc(1, sizeof(TBXMLAttributeBuffer)); - currentAttributeBuffer->next->previous = currentAttributeBuffer; - currentAttributeBuffer = currentAttributeBuffer->next; - currentAttributeBuffer->attributes = (TBXMLAttribute*)calloc(MAX_ATTRIBUTES,sizeof(TBXMLAttribute)); - currentAttribute = 0; - } - - return ¤tAttributeBuffer->attributes[currentAttribute]; -} - -@end diff --git a/Classes/GPXAuthor.swift b/Classes/GPXAuthor.swift index 65946d3..a5be697 100644 --- a/Classes/GPXAuthor.swift +++ b/Classes/GPXAuthor.swift @@ -13,10 +13,6 @@ open class GPXAuthor: GPXPerson { super.init() } - public required init(XMLElement element: UnsafeMutablePointer?, parent: GPXElement?) { - super.init(XMLElement: element, parent: parent) - } - // MARK: Tag override func tagName() -> String! { return "author" diff --git a/Classes/GPXBounds.swift b/Classes/GPXBounds.swift index c2484c9..7ad2763 100644 --- a/Classes/GPXBounds.swift +++ b/Classes/GPXBounds.swift @@ -24,20 +24,6 @@ open class GPXBounds: GPXElement { public required init() { super.init() } - - public required init(XMLElement element: UnsafeMutablePointer?, parent: GPXElement?) { - super.init(XMLElement: element, parent: parent) - - minLatitudeValue = value(ofAttribute: "minlat", xmlElement: element, required: true) - maxLatitudeValue = value(ofAttribute: "minlon", xmlElement: element, required: true) - minLongitudeValue = value(ofAttribute: "maxlat", xmlElement: element, required: true) - maxLatitudeValue = value(ofAttribute: "maxlon", xmlElement: element, required: true) - - minLatitude = GPXType().latitude(minLatitudeValue) - minLongitude = GPXType().longitude(minLongitudeValue) - maxLatitude = GPXType().latitude(maxLatitudeValue) - maxLongitude = GPXType().longitude(maxLatitudeValue) - } func boundsWith(_ minLatitude: CGFloat, maxLatitude: CGFloat, minLongitude: CGFloat, maxLongitude: CGFloat) -> GPXBounds { diff --git a/Classes/GPXCopyright.swift b/Classes/GPXCopyright.swift index 07413de..c890002 100644 --- a/Classes/GPXCopyright.swift +++ b/Classes/GPXCopyright.swift @@ -20,13 +20,6 @@ open class GPXCopyright: GPXElement { super.init() } - public required init(XMLElement element: UnsafeMutablePointer?, parent: GPXElement?) { - super.init(XMLElement: element, parent: parent) - yearValue = self.text(forSingleChildElement: "year", xmlElement: element) - license = self.text(forSingleChildElement: "license", xmlElement: element) - author = self.text(forSingleChildElement: "author", xmlElement: element, required: true) - } - func copyright(with author: String) -> GPXCopyright { let copyright = GPXCopyright() copyright.author = author diff --git a/Classes/GPXElement.swift b/Classes/GPXElement.swift index 6dc01a7..03744f4 100644 --- a/Classes/GPXElement.swift +++ b/Classes/GPXElement.swift @@ -10,8 +10,6 @@ import UIKit open class GPXElement: NSObject { public var parent: GPXElement? - //public var element: TBXMLElement - public var element: UnsafeMutablePointer? = nil //from GPXConst let kGPXInvalidGPXFormatNotification = "kGPXInvalidGPXFormatNotification" @@ -29,144 +27,11 @@ open class GPXElement: NSObject { } // MARK:- Instance - /* - convenience init(XMLElement element: UnsafeMutablePointer, parent: GPXElement?) { - self.init(XMLElement: element, parent: parent) - self.parent = parent! - } - */ + public required override init() { - //self.parent = GPXElement() - //self.element = TBXMLElement() super.init() } - - - public required init(XMLElement element: UnsafeMutablePointer?, parent: GPXElement?) { - //self.element = TBXMLElement() - self.element = element - - super.init() - - self.parent = self - //element?.initialize(to: self.element) - - } - - - // MARK:- Elements - - func value(ofAttribute name: String?, xmlElement: UnsafeMutablePointer?) -> String? { - return value(ofAttribute: name, xmlElement: xmlElement, required: false) - } - - func value(ofAttribute name: String?, xmlElement: UnsafeMutablePointer?, required: Bool) -> String? { - let value = TBXML.value(ofAttributeNamed: name, for: xmlElement) - - if value != nil && required == true { - - let description = String(format: "%@ element require %@ attribute.", self.tagName(), name ?? "") - - NotificationCenter.default.post(name: NSNotification.Name(rawValue: kGPXInvalidGPXFormatNotification), object: self, userInfo: [kGPXDescriptionKey : description]) - } - - return value - } - - func text(forSingleChildElement name: String?, xmlElement: UnsafeMutablePointer?) -> String { - - return text(forSingleChildElement: name, xmlElement: xmlElement, required: false) - } - - func text(forSingleChildElement name: String?, xmlElement: UnsafeMutablePointer?, required: Bool) -> String! { - - if let element: UnsafeMutablePointer = TBXML.childElementNamed(name, parentElement: xmlElement) { - return TBXML.text(for: element) - } - else { - if required { - let description = String(format: "%@ element require %@ element.", self.tagName(), name ?? "") - - NotificationCenter.default.post(name: NSNotification.Name(rawValue: kGPXInvalidGPXFormatNotification), object: self, userInfo: [kGPXDescriptionKey : description]) - } - } - - return nil - } - - func childElement(ofClass Class: GPXElement.Type, xmlElement: UnsafeMutablePointer?) -> GPXElement? { - - return childElement(ofClass: Class, xmlElement: xmlElement, required: false) - } - - func childElement(ofClass Class: GPXElement.Type, xmlElement: UnsafeMutablePointer?, required: Bool) -> GPXElement? { - let firstElement: GPXElement? - let element: UnsafeMutablePointer? = TBXML.childElementNamed(Class.init().tagName(), parentElement: xmlElement) - - - firstElement = Class.init(XMLElement: element, parent: self) - - if element != nil { - - let secondElement: UnsafeMutablePointer? = TBXML.nextSiblingNamed(Class.init().tagName(), searchFrom: element) - if secondElement != nil { - let description = String(format: "%@ element has more than two %@ elements.", self.tagName(), Class.init().tagName()) - - NotificationCenter.default.post(name: NSNotification.Name(rawValue: kGPXInvalidGPXFormatNotification), object: self, userInfo: [kGPXDescriptionKey : description]) - } - } - - if required { - if firstElement == nil { - let description = String(format: "%@ element require %@ element.", self.tagName(), Class.init().tagName()) - - NotificationCenter.default.post(name: NSNotification.Name(rawValue: kGPXInvalidGPXFormatNotification), object: self, userInfo: [kGPXDescriptionKey : description]) - } - } - - return firstElement - } - - func childElement(Named name: String, Class: GPXElement.Type, xmlElement: UnsafeMutablePointer?) -> GPXElement? { - return childElement(ofClass: Class, xmlElement: xmlElement, required: false) - } - - func childElement(Named name: String, Class: GPXElement.Type, xmlElement: UnsafeMutablePointer?, required: Bool) -> GPXElement? { - let firstElement: GPXElement? - let element: UnsafeMutablePointer? = TBXML.childElementNamed(name, parentElement: xmlElement) - - firstElement = Class.init(XMLElement: element!, parent: self) - - if element != nil { - - let secondElement: UnsafeMutablePointer? = TBXML.nextSiblingNamed(name, searchFrom: element) - if secondElement != nil { - let description = String(format: "%@ element has more than two %@ elements.", self.tagName(), Class.init().tagName()) - - NotificationCenter.default.post(name: NSNotification.Name(rawValue: kGPXInvalidGPXFormatNotification), object: self, userInfo: [kGPXDescriptionKey : description]) - } - } - - if required { - if firstElement == nil { - let description = String(format: "%@ element require %@ element.", self.tagName(), Class.init().tagName()) - - NotificationCenter.default.post(name: NSNotification.Name(rawValue: kGPXInvalidGPXFormatNotification), object: self, userInfo: [kGPXDescriptionKey : description]) - } - } - - return firstElement - } - - func childElement(ofClass Class: GPXElement.Type, xmlElement: UnsafeMutablePointer?, eachBlock: @escaping (_ element: GPXElement?) -> Void) { - var element: UnsafeMutablePointer? = TBXML.childElementNamed(Class.init().tagName(), parentElement: xmlElement) - - while element != nil { - eachBlock(Class.init(XMLElement: element!, parent: self)) - element = TBXML.nextSiblingNamed(Class.init().tagName(), searchFrom: element) - } - } - + // MARK:- GPX open func gpx() -> String { diff --git a/Classes/GPXEmail.swift b/Classes/GPXEmail.swift index 2579f77..f456c55 100644 --- a/Classes/GPXEmail.swift +++ b/Classes/GPXEmail.swift @@ -18,17 +18,7 @@ open class GPXEmail: GPXElement { self.emailID = String() self.domain = String() super.init() - } - - public required init(XMLElement element: UnsafeMutablePointer?, parent: GPXElement?) { - self.emailID = String() - self.domain = String() - - super.init(XMLElement: element, parent: parent) - - self.emailID = value(ofAttribute: "id", xmlElement: element, required: true) - self.domain = value(ofAttribute: "domain", xmlElement: element, required: true) - } + } func emailWith(ID emailID: String, domain: String) -> GPXEmail { let email = GPXEmail() diff --git a/Classes/GPXExtensions.swift b/Classes/GPXExtensions.swift index 48cb92e..1a53757 100644 --- a/Classes/GPXExtensions.swift +++ b/Classes/GPXExtensions.swift @@ -14,11 +14,6 @@ open class GPXExtensions: GPXElement { super.init() } - public required init(XMLElement element: UnsafeMutablePointer?, parent: GPXElement?) { - super.init(XMLElement: element, parent: parent) - } - - // MARK:- Tag override func tagName() -> String! { return "extensions" diff --git a/Classes/GPXLink.swift b/Classes/GPXLink.swift index d5dcda4..a887967 100644 --- a/Classes/GPXLink.swift +++ b/Classes/GPXLink.swift @@ -30,18 +30,6 @@ open class GPXLink: GPXElement { super.init() } - public required init(XMLElement element: UnsafeMutablePointer?, parent: GPXElement?) { - self.text = String() - self.mimetype = String() - self.href = String() - - super.init(XMLElement: element, parent: parent) - - self.text = text(forSingleChildElement: "text", xmlElement: element) - self.mimetype = text(forSingleChildElement: "type", xmlElement: element) - self.href = text(forSingleChildElement: "href", xmlElement: element, required: true) - } - /// --------------------------------- /// @name Create Link /// --------------------------------- diff --git a/Classes/GPXMetadata.swift b/Classes/GPXMetadata.swift index 704f40a..a1a3f55 100644 --- a/Classes/GPXMetadata.swift +++ b/Classes/GPXMetadata.swift @@ -28,22 +28,6 @@ open class GPXMetadata: GPXElement { super.init() } - public required init(XMLElement element: UnsafeMutablePointer?, parent: GPXElement?) { - author = GPXAuthor() - - super.init(XMLElement: element, parent: parent) - - name = text(forSingleChildElement: "name", xmlElement: element) - desc = text(forSingleChildElement: "desc", xmlElement: element) - author = childElement(ofClass: GPXAuthor.self, xmlElement: element) as? GPXAuthor - copyright = childElement(ofClass: GPXCopyright.self, xmlElement: element) as? GPXCopyright - link = childElement(ofClass: GPXLink.self, xmlElement: element) as? GPXLink - keyword = text(forSingleChildElement: "keyword", xmlElement: element) - bounds = childElement(ofClass: GPXBounds.self, xmlElement: element) as? GPXBounds - extensions = childElement(ofClass: GPXExtensions.self, xmlElement: element) as? GPXExtensions - - } - // MARK:- Public Methods diff --git a/Classes/GPXPerson.swift b/Classes/GPXPerson.swift index bea7849..a218a7c 100644 --- a/Classes/GPXPerson.swift +++ b/Classes/GPXPerson.swift @@ -22,18 +22,6 @@ open class GPXPerson: GPXElement { super.init() } - public required init(XMLElement element: UnsafeMutablePointer?, parent: GPXElement?) { - name = String() - email = GPXEmail() - link = GPXLink() - - super.init(XMLElement: element, parent: parent) - - name = text(forSingleChildElement: "name", xmlElement: element) - email = childElement(ofClass: GPXEmail.self, xmlElement: element) as! GPXEmail? - link = childElement(ofClass: GPXLink.self, xmlElement: element) as! GPXLink? - } - // MARK:- Public Methods diff --git a/Classes/GPXPoint.swift b/Classes/GPXPoint.swift index 3a7ef9d..ec91270 100644 --- a/Classes/GPXPoint.swift +++ b/Classes/GPXPoint.swift @@ -25,21 +25,6 @@ open class GPXPoint: GPXElement { super.init() } - public required init(XMLElement element: UnsafeMutablePointer?, parent: GPXElement?) { - super.init(XMLElement: element, parent: parent) - - elevationValue = text(forSingleChildElement: "ele", xmlElement: element) - timeValue = text(forSingleChildElement: "time", xmlElement: element) - latitudeValue = text(forSingleChildElement: "lat", xmlElement: element, required: true) - longitudeValue = text(forSingleChildElement: "lon", xmlElement: element, required: true) - - elevation = GPXType().decimal(elevationValue) - //time = GPXType().dateTime(value: timeValue!) - latitude = GPXType().latitude(latitudeValue) - longitude = GPXType().longitude(longitudeValue) - - } - func point(with latitude: CGFloat, longitude: CGFloat) -> GPXPoint { let point = GPXPoint() diff --git a/Classes/GPXPointSegment.swift b/Classes/GPXPointSegment.swift index 8aa2d2c..2bf9e5b 100644 --- a/Classes/GPXPointSegment.swift +++ b/Classes/GPXPointSegment.swift @@ -17,15 +17,6 @@ open class GPXPointSegment: GPXElement { super.init() } - public required init(XMLElement element: UnsafeMutablePointer?, parent: GPXElement?) { - super.init(XMLElement: element, parent: parent) - - self.childElement(ofClass: GPXPoint.self, xmlElement: element, eachBlock: { element in - if element != nil { - self.points.add(element!) - } }) - } - // MARK:- Public Methods func newPoint(with latitude: CGFloat, longitude: CGFloat) -> GPXPoint { diff --git a/Classes/GPXRoot.swift b/Classes/GPXRoot.swift index a5898e4..e280719 100644 --- a/Classes/GPXRoot.swift +++ b/Classes/GPXRoot.swift @@ -26,34 +26,6 @@ open class GPXRoot: GPXElement { } - public required init(XMLElement element: UnsafeMutablePointer?, parent: GPXElement?) { - super.init(XMLElement: element, parent: parent) - - version = value(ofAttribute: "version", xmlElement: element, required: true) ?? "" - creator = value(ofAttribute: "creator", xmlElement: element, required: true) ?? "" - - metadata = childElement(ofClass: GPXMetadata.self, xmlElement: element) as? GPXMetadata - - self.childElement(ofClass: GPXWaypoint.self, xmlElement: element, eachBlock: { element in - if element != nil { - self.waypoints.append(element as! GPXWaypoint) - - } }) - - self.childElement(ofClass: GPXRoute.self, xmlElement: element, eachBlock: { element in - if element != nil { - self.routes.append(element as! GPXRoute) - } }) - - self.childElement(ofClass: GPXTrack.self, xmlElement: element, eachBlock: { element in - if element != nil { - self.tracks.append(element as! GPXTrack) - } }) - - extensions = childElement(ofClass: GPXExtensions.self, xmlElement: element) as? GPXExtensions - - } - public init(creator: String) { super.init() self.creator = creator diff --git a/Classes/GPXRoute.swift b/Classes/GPXRoute.swift index ecb8ec1..9fc6375 100644 --- a/Classes/GPXRoute.swift +++ b/Classes/GPXRoute.swift @@ -25,33 +25,6 @@ open class GPXRoute: GPXElement { super.init() } - public required init(XMLElement element: UnsafeMutablePointer?, parent: GPXElement?) { - - super.init(XMLElement: element, parent: parent) - - name = text(forSingleChildElement: "name", xmlElement: element) - comment = text(forSingleChildElement: "cmt", xmlElement: element) - desc = text(forSingleChildElement: "desc", xmlElement: element) - source = text(forSingleChildElement: "src", xmlElement: element) - - self.childElement(ofClass: GPXLink.self, xmlElement: element, eachBlock: { element in - if element != nil { - self.links.append(element! as! GPXLink) - } }) - - numberValue = text(forSingleChildElement: "number", xmlElement: element) - - type = text(forSingleChildElement: "type", xmlElement: element) - - extensions = childElement(ofClass: GPXExtensions.self, xmlElement: element) as? GPXExtensions - - self.childElement(ofClass: GPXRoutePoint.self, xmlElement: element, eachBlock: { element in - if element != nil { - self.routepoints.append(element! as! GPXRoutePoint) - } }) - - } - // MARK: Public Methods var number: Int { diff --git a/Classes/GPXRoutePoint.swift b/Classes/GPXRoutePoint.swift index 176bee6..b872af2 100644 --- a/Classes/GPXRoutePoint.swift +++ b/Classes/GPXRoutePoint.swift @@ -13,10 +13,6 @@ open class GPXRoutePoint: GPXWaypoint { super.init() } - public required init(XMLElement element: UnsafeMutablePointer?, parent: GPXElement?) { - super.init(XMLElement: element, parent: parent) - } - // MARK:- Instance func routePoint(with latitude: CGFloat, longitude: CGFloat) -> GPXRoutePoint { diff --git a/Classes/GPXTrack.swift b/Classes/GPXTrack.swift index c1b50d4..7f2131e 100644 --- a/Classes/GPXTrack.swift +++ b/Classes/GPXTrack.swift @@ -25,31 +25,6 @@ open class GPXTrack: GPXElement { super.init() } - public required init(XMLElement element: UnsafeMutablePointer?, parent: GPXElement?) { - super.init(XMLElement: element, parent: parent) - - name = text(forSingleChildElement: "name", xmlElement: element) - comment = text(forSingleChildElement: "cmt", xmlElement: element) - desc = text(forSingleChildElement: "desc", xmlElement: element) - source = text(forSingleChildElement: "src", xmlElement: element) - - self.childElement(ofClass: GPXLink.self, xmlElement: element, eachBlock: { element in - if element != nil { - self.links.append(element! as! GPXLink) - } }) - - numberValue = text(forSingleChildElement: "number", xmlElement: element) - type = text(forSingleChildElement: "type", xmlElement: element) - extensions = childElement(ofClass: GPXExtensions.self, xmlElement: element) as? GPXExtensions - - self.childElement(ofClass: GPXTrackSegment.self, xmlElement: element, eachBlock: { element in - if element != nil { - self.tracksegments.append(element! as! GPXTrackSegment) - } }) - - self.number = GPXType().nonNegativeInt(numberValue) - } - // MARK:- Public Methods open func newLink(withHref href: String) -> GPXLink { diff --git a/Classes/GPXTrackPoint.swift b/Classes/GPXTrackPoint.swift index d73f78a..7d4e1ac 100644 --- a/Classes/GPXTrackPoint.swift +++ b/Classes/GPXTrackPoint.swift @@ -13,10 +13,6 @@ open class GPXTrackPoint: GPXWaypoint { super.init() } - public required init(XMLElement element: UnsafeMutablePointer?, parent: GPXElement?) { - super.init(XMLElement: element, parent: parent) - } - // MARK:- Instance func trackpointWith(latitude: CGFloat, longitude: CGFloat) -> GPXTrackPoint { diff --git a/Classes/GPXTrackSegment.swift b/Classes/GPXTrackSegment.swift index 87ef56f..f17e317 100644 --- a/Classes/GPXTrackSegment.swift +++ b/Classes/GPXTrackSegment.swift @@ -19,17 +19,6 @@ open class GPXTrackSegment: GPXElement { super.init() } - public required init(XMLElement element: UnsafeMutablePointer?, parent: GPXElement?) { - super.init(XMLElement: element, parent: parent) - - extensions = childElement(ofClass: GPXExtensions.self, xmlElement: element) as? GPXExtensions - - self.childElement(ofClass: GPXTrackPoint.self, xmlElement: element, eachBlock: { element in - if element != nil { - self.trackpoints.append(element! as! GPXTrackPoint) - } }) - } - // MARK:- Public Methods open func newTrackpointWith(latitude: CGFloat, longitude: CGFloat) -> GPXTrackPoint { diff --git a/Classes/GPXWaypoint.swift b/Classes/GPXWaypoint.swift index b96e7e8..f485f41 100644 --- a/Classes/GPXWaypoint.swift +++ b/Classes/GPXWaypoint.swift @@ -48,51 +48,7 @@ open class GPXWaypoint: GPXElement { self.time = Date() super.init() } - - public required init(XMLElement element: UnsafeMutablePointer?, parent: GPXElement?) { - - super.init(XMLElement: element, parent: parent) - - self.elevationValue = text(forSingleChildElement: "ele", xmlElement: element) - self.timeValue = text(forSingleChildElement: "time", xmlElement: element) - self.magneticVariationValue = text(forSingleChildElement: "magvar", xmlElement: element) - self.geoidHeightValue = text(forSingleChildElement: "geoidheight", xmlElement: element) - self.name = text(forSingleChildElement: "name", xmlElement: element) - self.comment = text(forSingleChildElement: "cmt", xmlElement: element) - self.desc = text(forSingleChildElement: "desc", xmlElement: element) - self.source = text(forSingleChildElement: "src", xmlElement: element) - self.childElement(ofClass: GPXLink.self, xmlElement: element, eachBlock: { element in - if element != nil { - self.links.append(element! as! GPXLink) - } }) - self.symbol = text(forSingleChildElement: "sym", xmlElement: element) - self.type = text(forSingleChildElement: "type", xmlElement: element) - self.fixValue = text(forSingleChildElement: "fix", xmlElement: element) - self.satellitesValue = text(forSingleChildElement: "sat", xmlElement: element) - self.horizontalDilutionValue = text(forSingleChildElement: "hdop", xmlElement: element) - self.verticalDilutionValue = text(forSingleChildElement: "vdop", xmlElement: element) - self.positionDilutionValue = text(forSingleChildElement: "pdop", xmlElement: element) - self.ageOfDGPSDataValue = text(forSingleChildElement: "ageofdgpsdata", xmlElement: element) - self.DGPSidValue = text(forSingleChildElement: "dgpsid", xmlElement: element) - self.extensions = childElement(ofClass: GPXExtensions.self, xmlElement: element) as? GPXExtensions - - self.latitudeValue = value(ofAttribute: "lat", xmlElement: element, required: true)! - self.longitudeValue = value(ofAttribute: "lon", xmlElement: element, required: true)! - - self.latitude = GPXType().latitude(latitudeValue) - self.longitude = GPXType().longitude(longitudeValue) - self.elevation = GPXType().decimal(elevationValue) - //self.time = GPXType().dateTime(value: timeValue) - self.magneticVariation = GPXType().degrees(magneticVariationValue) - self.geoidHeight = GPXType().decimal(geoidHeightValue) - self.fix = GPXType().fix(value: fixValue).rawValue - self.satellites = GPXType().nonNegativeInt(satellitesValue) - self.horizontalDilution = GPXType().decimal(horizontalDilutionValue) - self.verticalDilution = GPXType().decimal(verticalDilutionValue) - self.positionDilution = GPXType().decimal(positionDilutionValue) - self.ageofDGPSData = GPXType().decimal(ageOfDGPSDataValue) - } - + public init(latitude: CGFloat, longitude: CGFloat) { super.init() self.latitude = latitude diff --git a/Example/Podfile.lock b/Example/Podfile.lock index c64ff9b..1b089a3 100644 --- a/Example/Podfile.lock +++ b/Example/Podfile.lock @@ -1,5 +1,5 @@ PODS: - - GPXKit (0.2.2) + - GPXKit (0.3.0) DEPENDENCIES: - GPXKit (from `../`) @@ -9,7 +9,7 @@ EXTERNAL SOURCES: :path: "../" SPEC CHECKSUMS: - GPXKit: 6d9209c2ff116aab99068c65c6d0523697a7bcd4 + GPXKit: e9c0f7c3c936a6b101ae7320cc680bc0b2db54e6 PODFILE CHECKSUM: 8a32a3f9dd9bad529d650f7a04d51689d0db8eca diff --git a/Example/Pods/Local Podspecs/GPXKit.podspec.json b/Example/Pods/Local Podspecs/GPXKit.podspec.json index 108a719..7e0041e 100644 --- a/Example/Pods/Local Podspecs/GPXKit.podspec.json +++ b/Example/Pods/Local Podspecs/GPXKit.podspec.json @@ -1,6 +1,6 @@ { "name": "GPXKit", - "version": "0.2.2", + "version": "0.3.0", "summary": "A library for reading and creation of GPX location log files.", "description": "TODO: Add long description of the pod here.", "homepage": "https://github.com/vincentneo/GPXKit", @@ -13,14 +13,10 @@ }, "source": { "git": "https://github.com/vincentneo/GPXKit.git", - "tag": "0.2.2" + "tag": "0.3.0" }, "platforms": { "ios": "8.0" }, - "source_files": [ - "Classes", - "Classes/Dependencies/TBXML/" - ], - "public_header_files": "Classes/Dependencies/TBXML/" + "source_files": "Classes" } diff --git a/Example/Pods/Manifest.lock b/Example/Pods/Manifest.lock index c64ff9b..1b089a3 100644 --- a/Example/Pods/Manifest.lock +++ b/Example/Pods/Manifest.lock @@ -1,5 +1,5 @@ PODS: - - GPXKit (0.2.2) + - GPXKit (0.3.0) DEPENDENCIES: - GPXKit (from `../`) @@ -9,7 +9,7 @@ EXTERNAL SOURCES: :path: "../" SPEC CHECKSUMS: - GPXKit: 6d9209c2ff116aab99068c65c6d0523697a7bcd4 + GPXKit: e9c0f7c3c936a6b101ae7320cc680bc0b2db54e6 PODFILE CHECKSUM: 8a32a3f9dd9bad529d650f7a04d51689d0db8eca diff --git a/Example/Pods/Pods.xcodeproj/project.pbxproj b/Example/Pods/Pods.xcodeproj/project.pbxproj index 42ef03b..474ee84 100644 --- a/Example/Pods/Pods.xcodeproj/project.pbxproj +++ b/Example/Pods/Pods.xcodeproj/project.pbxproj @@ -7,41 +7,35 @@ objects = { /* Begin PBXBuildFile section */ - 006CC9E986015EFEC45D6DA4590C23DB /* TBXML.m in Sources */ = {isa = PBXBuildFile; fileRef = CEAA76D265CA21ED145E8CC0DF9C7595 /* TBXML.m */; }; - 014194018820BB8DCF476C8EA4B9F073 /* GPXEmail.swift in Sources */ = {isa = PBXBuildFile; fileRef = E202A32133FA59E20052C4E9A148F090 /* GPXEmail.swift */; }; - 12BCD7F94ED5BE5C542188A3D90A273F /* GPXTrack.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50A62318A6EE676FD780176B385A3012 /* GPXTrack.swift */; }; - 16D68DAA0489170B67BB53AAE8D620CF /* GPXExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = BACFF9C9D19495F2280D1CF44406E396 /* GPXExtensions.swift */; }; + 00BDDFE079223BD05F5EDC763D99165F /* GPXRoutePoint.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA03A9075C48A59C16F37A22686DF047 /* GPXRoutePoint.swift */; }; + 016F0B695D538C5EFD93F59DCA2E3102 /* GPXLink.swift in Sources */ = {isa = PBXBuildFile; fileRef = A4A5E7277108A5560C851AD18D1D94CD /* GPXLink.swift */; }; + 03A108E1CBF4576302896DB253BC979B /* GPXPerson.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2A5D88B0AFFB112E70CD031F04E3280 /* GPXPerson.swift */; }; + 1272EA5B61DB6BCA024F6DE1CBBD7009 /* GPXTrackSegment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75112F04BC8CE896C34D32BA6AF42976 /* GPXTrackSegment.swift */; }; + 145326A6F2827546BC219B88F672E601 /* GPXCopyright.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0380B0FE0688B164B8E324A91454BA12 /* GPXCopyright.swift */; }; 170C8A384B9EB02A98E9CDBB55F1F664 /* Pods-GPXKit_Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = BE890264AF60CC7BEF186CF89CF2A067 /* Pods-GPXKit_Tests-dummy.m */; }; + 1E3428CC05277D40FC6BE43F035330C8 /* GPXEmail.swift in Sources */ = {isa = PBXBuildFile; fileRef = 377F99B4D6C311C2367AEFBA474C8243 /* GPXEmail.swift */; }; + 1E48D9041E9050A8A2E16B6E2E7670C4 /* GPXType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 953083364CCA59543D9FB7CF332F13EB /* GPXType.swift */; }; 24AB0251EDC1B983DDB35E5C22DECE27 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5A16F4CFC63FAC439D7A04994F579A03 /* Foundation.framework */; }; - 2962A04B252F5926422894B03373906D /* GPXRoot.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9EB5FB276199D8E59BCB870A85BE313 /* GPXRoot.swift */; }; - 2A9B9369815917AEB9082310084C8C0F /* TBXML+HTTP.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B209A8F18C2BBA65E0F926042E7FE5F /* TBXML+HTTP.h */; settings = {ATTRIBUTES = (Public, ); }; }; 2F609B0A3267096914406953B718E1E9 /* Pods-GPXKit_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 39858D8C355D9478CE7F0393428A58D1 /* Pods-GPXKit_Example-dummy.m */; }; - 3362AA81532F97FF00CF77E542B8AB35 /* GPXKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 06C06A6F919A8AB34603A65064FBB2B9 /* GPXKit-dummy.m */; }; - 373BD3374BB05DA55A41983D2C154099 /* GPXTrackSegment.swift in Sources */ = {isa = PBXBuildFile; fileRef = CED1622FFE571B735F63BDDD32AA8B6D /* GPXTrackSegment.swift */; }; - 4980BB6213CA764DE7BBFB2416D491AE /* GPXType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7554C97C4F81E678AF1EAE5C6765480D /* GPXType.swift */; }; - 4FC0F1EECEB45479AAF100E9F35EE313 /* GPXParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5D24B705FC2E805064183252678E675 /* GPXParser.swift */; }; - 4FD5E23E6E209E67F94484D90214EBE7 /* TBXML+Compression.h in Headers */ = {isa = PBXBuildFile; fileRef = 315BDDB5329495C3D8224DF7296892A7 /* TBXML+Compression.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5DFC6CD47CE08818160BC915F6C83058 /* GPXRoute.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D76E2E67569FB977AB468DE4BC1B430 /* GPXRoute.swift */; }; - 6DD336F0DA066660DBCA6F9D83DBDCE5 /* GPXLink.swift in Sources */ = {isa = PBXBuildFile; fileRef = F8BA475DE011706ACC2B6C6678FA2E6B /* GPXLink.swift */; }; - 6E0A0A696C87CB6789D0BF9B43196309 /* GPXAuthor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73DFA439FF0974A853DF5A5D75D20F47 /* GPXAuthor.swift */; }; + 350F63DE55707E4882546BEF7626B25F /* GPXMetadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA02AF0F58AC10D556779F69CB2BC3D6 /* GPXMetadata.swift */; }; + 369AF87783519218A946FF5C09601E92 /* GPXElement.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEDB95A17A5EDE7C3C4485FC55A3F666 /* GPXElement.swift */; }; + 3D9F57B1664338AB7BB9637160F35DC8 /* GPXKit-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 92FCF298E9C7B929009EACD30F15D316 /* GPXKit-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 468BC4E2E307AC450B87E047E0296034 /* GPXRoot.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18965A87A53ED2A646CE888BE10481EC /* GPXRoot.swift */; }; + 470BE17AF5444A8EC5F7DDCA2BD4BA73 /* GPXWaypoint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7948C2E0156D808404D58D2C04030857 /* GPXWaypoint.swift */; }; + 5AD0C3B14F1A6A330FFB471260AD66EB /* GPXAuthor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0D2A41D0297B26C19BB9A052ADEAC4AF /* GPXAuthor.swift */; }; 6E9816A6EF9C00518B333F311A06B3C6 /* Pods-GPXKit_Tests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 0DFEA1BBFED7761C54E34533C845E52D /* Pods-GPXKit_Tests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7B17AFAAFBC2221057725FD86F194BA8 /* GPXElement.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0AB7F9A71FB6CE0E44C4AAB1BD8F5EC8 /* GPXElement.swift */; }; - 7B2371A69C9C688D6E647D568C5B0360 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5A16F4CFC63FAC439D7A04994F579A03 /* Foundation.framework */; }; - 7FEBF69F53986785991E5C910EDCD36D /* GPXPerson.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2D46A83A28C0792A95912A047AA84FC /* GPXPerson.swift */; }; - 84C0450297F7AF726B0E3C15ADB62459 /* GPXBounds.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF00472BD6191AF662FF96E9DDE79D30 /* GPXBounds.swift */; }; - 87C0EB00594D120B47423F3B899D765F /* TBXML.h in Headers */ = {isa = PBXBuildFile; fileRef = 22674125C7D1FC7ECE5E62E5C8848E43 /* TBXML.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7C7E9F8CED8E5289E9DA200A57C75C0F /* GPXKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = EC38C75E7B18026EE341B8FC21B9E50E /* GPXKit-dummy.m */; }; + 8FCF1084A84F0AD48EB1DB8ADE93484A /* GPXParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13090AD0EFC9C26737959142E49C502F /* GPXParser.swift */; }; 96955EAE494B6042139110C5B8E5B365 /* Pods-GPXKit_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F92DE730BA2208830EB6528858CA83E /* Pods-GPXKit_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AB5251C29A4760831B4CEB11A3DE80A1 /* GPXMetadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75B98B1DD589B58E0A1FB980E4A39377 /* GPXMetadata.swift */; }; - B67116B04EA7A554C2264B30EAF0117E /* GPXRoutePoint.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2FE296B16BC036CF96B1669BE27156C /* GPXRoutePoint.swift */; }; - B7DB781DBD9C69B76283C5C946C2DE74 /* GPXTrackPoint.swift in Sources */ = {isa = PBXBuildFile; fileRef = C376A7CBED5CDEE0A003F903F01F026F /* GPXTrackPoint.swift */; }; - BA60A32F7C28A91B0581D65532C31785 /* TBXML+HTTP.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E3B5524F99624AFDAE47D232578706F /* TBXML+HTTP.m */; }; - BE36102A1870BF8B1DA389BCFAF9CDA2 /* GPXWaypoint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0FF4A1AC2C47E7963250D9A86665E4E8 /* GPXWaypoint.swift */; }; - D254E1598DE8C051D553AADACF6A6F6F /* GPXPoint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 42D83ABDC41182FB422B84D82682908A /* GPXPoint.swift */; }; - D25BA8DF2FE41D46E3F5CDDC39EF5305 /* GPXPointSegment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6F73B06B13B91420B02DB15197564B5D /* GPXPointSegment.swift */; }; + 98D2031B5E99FC4686ED9D10DFA6977E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5A16F4CFC63FAC439D7A04994F579A03 /* Foundation.framework */; }; + A69227623744CFD257C35BA743A8ECA1 /* GPXExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37B3B831B4C253220016A2366FCF8B03 /* GPXExtensions.swift */; }; + C3B42DC84C537345248F52809A88E214 /* GPXRoute.swift in Sources */ = {isa = PBXBuildFile; fileRef = EBCEA4DACCC881B46B3A65D7D713CF92 /* GPXRoute.swift */; }; + CCF862BF0F302DDD3031047AF7FC95D7 /* GPXPoint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 552B30309CEBE5B7019F6FD1CF14B8A6 /* GPXPoint.swift */; }; + D6B487B680ED8B9CB98C8238D50E6F47 /* GPXTrack.swift in Sources */ = {isa = PBXBuildFile; fileRef = 780079F3279B02C3B3817218D02907B4 /* GPXTrack.swift */; }; D6F1B584B9A7B9D483CF8CBD2A9F8A24 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5A16F4CFC63FAC439D7A04994F579A03 /* Foundation.framework */; }; - E57B597246432065B89F4C3D6A37DC40 /* GPXKit-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 18E407802CE418F3C100168FEAABC6A2 /* GPXKit-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E63FFCFB931B6866C4E9EF21351B6B63 /* TBXML+Compression.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B65579A9A229212F914C3AFCF74582F /* TBXML+Compression.m */; }; - F6E19FD48CF0BE46F072543C94DFFB01 /* GPXCopyright.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE4645F64694C3F12C6BC37763DB1D60 /* GPXCopyright.swift */; }; + E045B404D6E58FE8E8856A97E3DAB4E5 /* GPXPointSegment.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1F57D0555B8E7A4CBFA0447AFEC7542 /* GPXPointSegment.swift */; }; + F1282D91486782F8217CAF1CD490E170 /* GPXBounds.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D80810D68357BD34EA7A8E2EE22CAFE /* GPXBounds.swift */; }; + FB86ED0424CBC87E6D8AD4B2AB45DAAF /* GPXTrackPoint.swift in Sources */ = {isa = PBXBuildFile; fileRef = A40ECB2C886183FEDAE956D8C19C1690 /* GPXTrackPoint.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -49,7 +43,7 @@ isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = 12D64DA482BA10CFF17A142194B9940E; + remoteGlobalIDString = C967987317C2F8751FC5BF98A0FE0288; remoteInfo = GPXKit; }; 9524455B4389AFB31CDF97088E897D85 /* PBXContainerItemProxy */ = { @@ -62,104 +56,90 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ + 02760396C01459E8F901DCD8D3595E72 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 028604DAEEC6AA05A291FA910111ED67 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 06C06A6F919A8AB34603A65064FBB2B9 /* GPXKit-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "GPXKit-dummy.m"; sourceTree = ""; }; - 0AB7F9A71FB6CE0E44C4AAB1BD8F5EC8 /* GPXElement.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GPXElement.swift; path = Classes/GPXElement.swift; sourceTree = ""; }; + 0380B0FE0688B164B8E324A91454BA12 /* GPXCopyright.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GPXCopyright.swift; path = Classes/GPXCopyright.swift; sourceTree = ""; }; + 074AE5A7D8F25D49F884AC99652F61CD /* GPXKit-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "GPXKit-prefix.pch"; sourceTree = ""; }; + 083FBFC670158CD7B0E8B7EE73629CFD /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; + 0D2A41D0297B26C19BB9A052ADEAC4AF /* GPXAuthor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GPXAuthor.swift; path = Classes/GPXAuthor.swift; sourceTree = ""; }; 0DFEA1BBFED7761C54E34533C845E52D /* Pods-GPXKit_Tests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-GPXKit_Tests-umbrella.h"; sourceTree = ""; }; 0FE6DC5B30825964E7A83DD6DD4F91EE /* GPXKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = GPXKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 0FF4A1AC2C47E7963250D9A86665E4E8 /* GPXWaypoint.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GPXWaypoint.swift; path = Classes/GPXWaypoint.swift; sourceTree = ""; }; 107601E932239FC1DFF5985F3F2B6455 /* Pods-GPXKit_Tests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-GPXKit_Tests.modulemap"; sourceTree = ""; }; - 108B2F23778A9124DD871CE9CE891715 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 18E407802CE418F3C100168FEAABC6A2 /* GPXKit-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "GPXKit-umbrella.h"; sourceTree = ""; }; - 22674125C7D1FC7ECE5E62E5C8848E43 /* TBXML.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = TBXML.h; sourceTree = ""; }; + 13090AD0EFC9C26737959142E49C502F /* GPXParser.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GPXParser.swift; path = Classes/GPXParser.swift; sourceTree = ""; }; + 18965A87A53ED2A646CE888BE10481EC /* GPXRoot.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GPXRoot.swift; path = Classes/GPXRoot.swift; sourceTree = ""; }; 2323244959724AB3799390D4FAD0ECAC /* Pods-GPXKit_Tests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-GPXKit_Tests-resources.sh"; sourceTree = ""; }; - 2390768168A39C95C35573CAD7AAF561 /* GPXKit.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = GPXKit.modulemap; sourceTree = ""; }; - 315BDDB5329495C3D8224DF7296892A7 /* TBXML+Compression.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "TBXML+Compression.h"; sourceTree = ""; }; + 377F99B4D6C311C2367AEFBA474C8243 /* GPXEmail.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GPXEmail.swift; path = Classes/GPXEmail.swift; sourceTree = ""; }; + 37B3B831B4C253220016A2366FCF8B03 /* GPXExtensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GPXExtensions.swift; path = Classes/GPXExtensions.swift; sourceTree = ""; }; 39858D8C355D9478CE7F0393428A58D1 /* Pods-GPXKit_Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-GPXKit_Example-dummy.m"; sourceTree = ""; }; - 42D83ABDC41182FB422B84D82682908A /* GPXPoint.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GPXPoint.swift; path = Classes/GPXPoint.swift; sourceTree = ""; }; - 4355AFFC8EFE28955EEA8D27CCEFD2EE /* GPXKit-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "GPXKit-prefix.pch"; sourceTree = ""; }; 449AB63040842129352BD970926897FD /* Pods-GPXKit_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-GPXKit_Tests.release.xcconfig"; sourceTree = ""; }; 48FEDD772072D62AA7758F339949F614 /* Pods-GPXKit_Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-GPXKit_Example-acknowledgements.markdown"; sourceTree = ""; }; - 4B209A8F18C2BBA65E0F926042E7FE5F /* TBXML+HTTP.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "TBXML+HTTP.h"; sourceTree = ""; }; - 4D76E2E67569FB977AB468DE4BC1B430 /* GPXRoute.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GPXRoute.swift; path = Classes/GPXRoute.swift; sourceTree = ""; }; - 4E3B5524F99624AFDAE47D232578706F /* TBXML+HTTP.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "TBXML+HTTP.m"; sourceTree = ""; }; - 50A62318A6EE676FD780176B385A3012 /* GPXTrack.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GPXTrack.swift; path = Classes/GPXTrack.swift; sourceTree = ""; }; - 51ED86F1482FA11C4BF0D7AA3EA6356E /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; + 552B30309CEBE5B7019F6FD1CF14B8A6 /* GPXPoint.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GPXPoint.swift; path = Classes/GPXPoint.swift; sourceTree = ""; }; 5A16F4CFC63FAC439D7A04994F579A03 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + 5D80810D68357BD34EA7A8E2EE22CAFE /* GPXBounds.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GPXBounds.swift; path = Classes/GPXBounds.swift; sourceTree = ""; }; 5F61B273A30C71DC020590EC71E2E971 /* Pods-GPXKit_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-GPXKit_Example.debug.xcconfig"; sourceTree = ""; }; + 6788BE60564F93367C8A9592682AE746 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; 69D78741D275AF4E9E8CE180426B5E9E /* Pods_GPXKit_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_GPXKit_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 6D9B9F1E3D8BB2386A0023E915896E1B /* Pods-GPXKit_Tests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-GPXKit_Tests-frameworks.sh"; sourceTree = ""; }; - 6F73B06B13B91420B02DB15197564B5D /* GPXPointSegment.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GPXPointSegment.swift; path = Classes/GPXPointSegment.swift; sourceTree = ""; }; 7247CEF9EBC481E8E9FF55A530194B33 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 73DFA439FF0974A853DF5A5D75D20F47 /* GPXAuthor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GPXAuthor.swift; path = Classes/GPXAuthor.swift; sourceTree = ""; }; - 7554C97C4F81E678AF1EAE5C6765480D /* GPXType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GPXType.swift; path = Classes/GPXType.swift; sourceTree = ""; }; - 75B98B1DD589B58E0A1FB980E4A39377 /* GPXMetadata.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GPXMetadata.swift; path = Classes/GPXMetadata.swift; sourceTree = ""; }; + 731D2D15EA4ADB2DF9616A083E214B28 /* GPXKit.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; path = GPXKit.podspec; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 75112F04BC8CE896C34D32BA6AF42976 /* GPXTrackSegment.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GPXTrackSegment.swift; path = Classes/GPXTrackSegment.swift; sourceTree = ""; }; + 780079F3279B02C3B3817218D02907B4 /* GPXTrack.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GPXTrack.swift; path = Classes/GPXTrack.swift; sourceTree = ""; }; + 7948C2E0156D808404D58D2C04030857 /* GPXWaypoint.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GPXWaypoint.swift; path = Classes/GPXWaypoint.swift; sourceTree = ""; }; 796E643A1A01FFB4E1735C7FB09AE982 /* Pods-GPXKit_Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-GPXKit_Example.modulemap"; sourceTree = ""; }; - 7B65579A9A229212F914C3AFCF74582F /* TBXML+Compression.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "TBXML+Compression.m"; sourceTree = ""; }; 8010F3D26243E0B37E9E3279D59CFEE5 /* Pods-GPXKit_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-GPXKit_Tests.debug.xcconfig"; sourceTree = ""; }; + 92FCF298E9C7B929009EACD30F15D316 /* GPXKit-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "GPXKit-umbrella.h"; sourceTree = ""; }; 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 93F7533E7EA3FB168C80ADFB93770FD1 /* Pods-GPXKit_Tests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-GPXKit_Tests-acknowledgements.plist"; sourceTree = ""; }; + 953083364CCA59543D9FB7CF332F13EB /* GPXType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GPXType.swift; path = Classes/GPXType.swift; sourceTree = ""; }; 9AF17497F29CAC8964BFBD324E8FBF46 /* Pods-GPXKit_Tests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-GPXKit_Tests-acknowledgements.markdown"; sourceTree = ""; }; 9F92DE730BA2208830EB6528858CA83E /* Pods-GPXKit_Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-GPXKit_Example-umbrella.h"; sourceTree = ""; }; + A40ECB2C886183FEDAE956D8C19C1690 /* GPXTrackPoint.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GPXTrackPoint.swift; path = Classes/GPXTrackPoint.swift; sourceTree = ""; }; + A4A5E7277108A5560C851AD18D1D94CD /* GPXLink.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GPXLink.swift; path = Classes/GPXLink.swift; sourceTree = ""; }; B0FC78452F2611881FD0003416F5A1EB /* Pods-GPXKit_Example-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-GPXKit_Example-frameworks.sh"; sourceTree = ""; }; - B2FE296B16BC036CF96B1669BE27156C /* GPXRoutePoint.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GPXRoutePoint.swift; path = Classes/GPXRoutePoint.swift; sourceTree = ""; }; + B1F57D0555B8E7A4CBFA0447AFEC7542 /* GPXPointSegment.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GPXPointSegment.swift; path = Classes/GPXPointSegment.swift; sourceTree = ""; }; B37CBB4EA663289BFD19CEC1C5B8A596 /* Pods_GPXKit_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_GPXKit_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - BACFF9C9D19495F2280D1CF44406E396 /* GPXExtensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GPXExtensions.swift; path = Classes/GPXExtensions.swift; sourceTree = ""; }; + BA03A9075C48A59C16F37A22686DF047 /* GPXRoutePoint.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GPXRoutePoint.swift; path = Classes/GPXRoutePoint.swift; sourceTree = ""; }; BC7D2EDE611456AF8F6E998253730BE1 /* Pods-GPXKit_Example-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-GPXKit_Example-resources.sh"; sourceTree = ""; }; BE890264AF60CC7BEF186CF89CF2A067 /* Pods-GPXKit_Tests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-GPXKit_Tests-dummy.m"; sourceTree = ""; }; - BF00472BD6191AF662FF96E9DDE79D30 /* GPXBounds.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GPXBounds.swift; path = Classes/GPXBounds.swift; sourceTree = ""; }; C267DDDF80D9966856744E15BAC5A9E4 /* Pods-GPXKit_Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-GPXKit_Example-acknowledgements.plist"; sourceTree = ""; }; - C376A7CBED5CDEE0A003F903F01F026F /* GPXTrackPoint.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GPXTrackPoint.swift; path = Classes/GPXTrackPoint.swift; sourceTree = ""; }; - C5D24B705FC2E805064183252678E675 /* GPXParser.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GPXParser.swift; path = Classes/GPXParser.swift; sourceTree = ""; }; - CE4645F64694C3F12C6BC37763DB1D60 /* GPXCopyright.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GPXCopyright.swift; path = Classes/GPXCopyright.swift; sourceTree = ""; }; - CEAA76D265CA21ED145E8CC0DF9C7595 /* TBXML.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = TBXML.m; sourceTree = ""; }; - CED1622FFE571B735F63BDDD32AA8B6D /* GPXTrackSegment.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GPXTrackSegment.swift; path = Classes/GPXTrackSegment.swift; sourceTree = ""; }; - D9EB5FB276199D8E59BCB870A85BE313 /* GPXRoot.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GPXRoot.swift; path = Classes/GPXRoot.swift; sourceTree = ""; }; - DACF2C4A070AFA0AE294F399CEAD6AB3 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; - E202A32133FA59E20052C4E9A148F090 /* GPXEmail.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GPXEmail.swift; path = Classes/GPXEmail.swift; sourceTree = ""; }; - EBBF654782118F4681574ECC2149CBDA /* GPXKit.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; path = GPXKit.podspec; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - F2960FDC83CFDEADA9C161EE06767C2C /* GPXKit.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = GPXKit.xcconfig; sourceTree = ""; }; - F2D46A83A28C0792A95912A047AA84FC /* GPXPerson.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GPXPerson.swift; path = Classes/GPXPerson.swift; sourceTree = ""; }; + CEDB95A17A5EDE7C3C4485FC55A3F666 /* GPXElement.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GPXElement.swift; path = Classes/GPXElement.swift; sourceTree = ""; }; + D53523A6C5D23A4BC0127097B557616D /* GPXKit.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = GPXKit.xcconfig; sourceTree = ""; }; + EA02AF0F58AC10D556779F69CB2BC3D6 /* GPXMetadata.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GPXMetadata.swift; path = Classes/GPXMetadata.swift; sourceTree = ""; }; + EBCEA4DACCC881B46B3A65D7D713CF92 /* GPXRoute.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GPXRoute.swift; path = Classes/GPXRoute.swift; sourceTree = ""; }; + EC38C75E7B18026EE341B8FC21B9E50E /* GPXKit-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "GPXKit-dummy.m"; sourceTree = ""; }; + F2A5D88B0AFFB112E70CD031F04E3280 /* GPXPerson.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GPXPerson.swift; path = Classes/GPXPerson.swift; sourceTree = ""; }; F84932B3297613D4ED6B0C58E1B46D56 /* Pods-GPXKit_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-GPXKit_Example.release.xcconfig"; sourceTree = ""; }; - F8BA475DE011706ACC2B6C6678FA2E6B /* GPXLink.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GPXLink.swift; path = Classes/GPXLink.swift; sourceTree = ""; }; + FE4A8AD67E98EA05280A5F7DB14F177E /* GPXKit.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = GPXKit.modulemap; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 1632A150944C4F0A6FEFAFD43F0F7367 /* Frameworks */ = { + 60BAE826D099374ADAFEB7CFB1F7F06F /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 7B2371A69C9C688D6E647D568C5B0360 /* Foundation.framework in Frameworks */, + 24AB0251EDC1B983DDB35E5C22DECE27 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 60BAE826D099374ADAFEB7CFB1F7F06F /* Frameworks */ = { + A044B9BA2E0ED12DF38B6A72AF87239E /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 24AB0251EDC1B983DDB35E5C22DECE27 /* Foundation.framework in Frameworks */, + D6F1B584B9A7B9D483CF8CBD2A9F8A24 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - A044B9BA2E0ED12DF38B6A72AF87239E /* Frameworks */ = { + ED5BF64B56C7ACB6E425EDA4FDD3213D /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - D6F1B584B9A7B9D483CF8CBD2A9F8A24 /* Foundation.framework in Frameworks */, + 98D2031B5E99FC4686ED9D10DFA6977E /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 234E43A8BBBA06BC107623178F7257F0 /* Development Pods */ = { - isa = PBXGroup; - children = ( - C397D46CBE6C6A68BEFE622D29E6E2DE /* GPXKit */, - ); - name = "Development Pods"; - sourceTree = ""; - }; 295AD263E98E38F08FF21C2F066B7E8A /* Pods-GPXKit_Tests */ = { isa = PBXGroup; children = ( @@ -178,16 +158,24 @@ path = "Target Support Files/Pods-GPXKit_Tests"; sourceTree = ""; }; - 2E90193A33A8B806BE09DBC979550443 /* Pod */ = { + 40D73913103394907589FAA0E11D8857 /* Pod */ = { isa = PBXGroup; children = ( - EBBF654782118F4681574ECC2149CBDA /* GPXKit.podspec */, - 51ED86F1482FA11C4BF0D7AA3EA6356E /* LICENSE */, - DACF2C4A070AFA0AE294F399CEAD6AB3 /* README.md */, + 731D2D15EA4ADB2DF9616A083E214B28 /* GPXKit.podspec */, + 6788BE60564F93367C8A9592682AE746 /* LICENSE */, + 083FBFC670158CD7B0E8B7EE73629CFD /* README.md */, ); name = Pod; sourceTree = ""; }; + 48B5B0E3CF821C26B511E6A7AB741282 /* Development Pods */ = { + isa = PBXGroup; + children = ( + 87A82BFE9D030C3BAFDF6B2BA8B3BE97 /* GPXKit */, + ); + name = "Development Pods"; + sourceTree = ""; + }; 5E0D919E635D23B70123790B8308F8EF /* iOS */ = { isa = PBXGroup; children = ( @@ -196,42 +184,59 @@ name = iOS; sourceTree = ""; }; - 72DEFCEEB8A8D738388F770E41169EDF /* Support Files */ = { + 7DB346D0F39D3F0E887471402A8071AB = { isa = PBXGroup; children = ( - 2390768168A39C95C35573CAD7AAF561 /* GPXKit.modulemap */, - F2960FDC83CFDEADA9C161EE06767C2C /* GPXKit.xcconfig */, - 06C06A6F919A8AB34603A65064FBB2B9 /* GPXKit-dummy.m */, - 4355AFFC8EFE28955EEA8D27CCEFD2EE /* GPXKit-prefix.pch */, - 18E407802CE418F3C100168FEAABC6A2 /* GPXKit-umbrella.h */, - 108B2F23778A9124DD871CE9CE891715 /* Info.plist */, + 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */, + 48B5B0E3CF821C26B511E6A7AB741282 /* Development Pods */, + BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */, + B86568509D5557859245E9E2C75D73DB /* Products */, + EAF6A161FE54BC506F41F937BD79AA3B /* Targets Support Files */, ); - name = "Support Files"; - path = "Example/Pods/Target Support Files/GPXKit"; sourceTree = ""; }; - 765810835C79086D7E2336FD7EB416C5 /* TBXML */ = { + 87A82BFE9D030C3BAFDF6B2BA8B3BE97 /* GPXKit */ = { isa = PBXGroup; children = ( - 22674125C7D1FC7ECE5E62E5C8848E43 /* TBXML.h */, - CEAA76D265CA21ED145E8CC0DF9C7595 /* TBXML.m */, - 315BDDB5329495C3D8224DF7296892A7 /* TBXML+Compression.h */, - 7B65579A9A229212F914C3AFCF74582F /* TBXML+Compression.m */, - 4B209A8F18C2BBA65E0F926042E7FE5F /* TBXML+HTTP.h */, - 4E3B5524F99624AFDAE47D232578706F /* TBXML+HTTP.m */, - ); - path = TBXML; + 0D2A41D0297B26C19BB9A052ADEAC4AF /* GPXAuthor.swift */, + 5D80810D68357BD34EA7A8E2EE22CAFE /* GPXBounds.swift */, + 0380B0FE0688B164B8E324A91454BA12 /* GPXCopyright.swift */, + CEDB95A17A5EDE7C3C4485FC55A3F666 /* GPXElement.swift */, + 377F99B4D6C311C2367AEFBA474C8243 /* GPXEmail.swift */, + 37B3B831B4C253220016A2366FCF8B03 /* GPXExtensions.swift */, + A4A5E7277108A5560C851AD18D1D94CD /* GPXLink.swift */, + EA02AF0F58AC10D556779F69CB2BC3D6 /* GPXMetadata.swift */, + 13090AD0EFC9C26737959142E49C502F /* GPXParser.swift */, + F2A5D88B0AFFB112E70CD031F04E3280 /* GPXPerson.swift */, + 552B30309CEBE5B7019F6FD1CF14B8A6 /* GPXPoint.swift */, + B1F57D0555B8E7A4CBFA0447AFEC7542 /* GPXPointSegment.swift */, + 18965A87A53ED2A646CE888BE10481EC /* GPXRoot.swift */, + EBCEA4DACCC881B46B3A65D7D713CF92 /* GPXRoute.swift */, + BA03A9075C48A59C16F37A22686DF047 /* GPXRoutePoint.swift */, + 780079F3279B02C3B3817218D02907B4 /* GPXTrack.swift */, + A40ECB2C886183FEDAE956D8C19C1690 /* GPXTrackPoint.swift */, + 75112F04BC8CE896C34D32BA6AF42976 /* GPXTrackSegment.swift */, + 953083364CCA59543D9FB7CF332F13EB /* GPXType.swift */, + 7948C2E0156D808404D58D2C04030857 /* GPXWaypoint.swift */, + 40D73913103394907589FAA0E11D8857 /* Pod */, + ADE20AE785DF450503E16F43BA17AE5F /* Support Files */, + ); + name = GPXKit; + path = ../..; sourceTree = ""; }; - 7DB346D0F39D3F0E887471402A8071AB = { + ADE20AE785DF450503E16F43BA17AE5F /* Support Files */ = { isa = PBXGroup; children = ( - 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */, - 234E43A8BBBA06BC107623178F7257F0 /* Development Pods */, - BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */, - B86568509D5557859245E9E2C75D73DB /* Products */, - EAF6A161FE54BC506F41F937BD79AA3B /* Targets Support Files */, + FE4A8AD67E98EA05280A5F7DB14F177E /* GPXKit.modulemap */, + D53523A6C5D23A4BC0127097B557616D /* GPXKit.xcconfig */, + EC38C75E7B18026EE341B8FC21B9E50E /* GPXKit-dummy.m */, + 074AE5A7D8F25D49F884AC99652F61CD /* GPXKit-prefix.pch */, + 92FCF298E9C7B929009EACD30F15D316 /* GPXKit-umbrella.h */, + 02760396C01459E8F901DCD8D3595E72 /* Info.plist */, ); + name = "Support Files"; + path = "Example/Pods/Target Support Files/GPXKit"; sourceTree = ""; }; B86568509D5557859245E9E2C75D73DB /* Products */ = { @@ -252,37 +257,6 @@ name = Frameworks; sourceTree = ""; }; - C397D46CBE6C6A68BEFE622D29E6E2DE /* GPXKit */ = { - isa = PBXGroup; - children = ( - 73DFA439FF0974A853DF5A5D75D20F47 /* GPXAuthor.swift */, - BF00472BD6191AF662FF96E9DDE79D30 /* GPXBounds.swift */, - CE4645F64694C3F12C6BC37763DB1D60 /* GPXCopyright.swift */, - 0AB7F9A71FB6CE0E44C4AAB1BD8F5EC8 /* GPXElement.swift */, - E202A32133FA59E20052C4E9A148F090 /* GPXEmail.swift */, - BACFF9C9D19495F2280D1CF44406E396 /* GPXExtensions.swift */, - F8BA475DE011706ACC2B6C6678FA2E6B /* GPXLink.swift */, - 75B98B1DD589B58E0A1FB980E4A39377 /* GPXMetadata.swift */, - C5D24B705FC2E805064183252678E675 /* GPXParser.swift */, - F2D46A83A28C0792A95912A047AA84FC /* GPXPerson.swift */, - 42D83ABDC41182FB422B84D82682908A /* GPXPoint.swift */, - 6F73B06B13B91420B02DB15197564B5D /* GPXPointSegment.swift */, - D9EB5FB276199D8E59BCB870A85BE313 /* GPXRoot.swift */, - 4D76E2E67569FB977AB468DE4BC1B430 /* GPXRoute.swift */, - B2FE296B16BC036CF96B1669BE27156C /* GPXRoutePoint.swift */, - 50A62318A6EE676FD780176B385A3012 /* GPXTrack.swift */, - C376A7CBED5CDEE0A003F903F01F026F /* GPXTrackPoint.swift */, - CED1622FFE571B735F63BDDD32AA8B6D /* GPXTrackSegment.swift */, - 7554C97C4F81E678AF1EAE5C6765480D /* GPXType.swift */, - 0FF4A1AC2C47E7963250D9A86665E4E8 /* GPXWaypoint.swift */, - FF773A160303279D4C8777FF440FF2D7 /* Dependencies */, - 2E90193A33A8B806BE09DBC979550443 /* Pod */, - 72DEFCEEB8A8D738388F770E41169EDF /* Support Files */, - ); - name = GPXKit; - path = ../..; - sourceTree = ""; - }; EAF6A161FE54BC506F41F937BD79AA3B /* Targets Support Files */ = { isa = PBXGroup; children = ( @@ -310,34 +284,22 @@ path = "Target Support Files/Pods-GPXKit_Example"; sourceTree = ""; }; - FF773A160303279D4C8777FF440FF2D7 /* Dependencies */ = { - isa = PBXGroup; - children = ( - 765810835C79086D7E2336FD7EB416C5 /* TBXML */, - ); - name = Dependencies; - path = Classes/Dependencies; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - 8ACFD0F3365073791E4559D49D504DB8 /* Headers */ = { + 4D467C7EB06D1F928FBCB636BF4CE4E8 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 96955EAE494B6042139110C5B8E5B365 /* Pods-GPXKit_Example-umbrella.h in Headers */, + 3D9F57B1664338AB7BB9637160F35DC8 /* GPXKit-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 8C8E245FA8CAD6EC6E2B6F24EC5A0D78 /* Headers */ = { + 8ACFD0F3365073791E4559D49D504DB8 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - E57B597246432065B89F4C3D6A37DC40 /* GPXKit-umbrella.h in Headers */, - 4FD5E23E6E209E67F94484D90214EBE7 /* TBXML+Compression.h in Headers */, - 2A9B9369815917AEB9082310084C8C0F /* TBXML+HTTP.h in Headers */, - 87C0EB00594D120B47423F3B899D765F /* TBXML.h in Headers */, + 96955EAE494B6042139110C5B8E5B365 /* Pods-GPXKit_Example-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -352,23 +314,6 @@ /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ - 12D64DA482BA10CFF17A142194B9940E /* GPXKit */ = { - isa = PBXNativeTarget; - buildConfigurationList = E5F3C7F601E957BB7BA7ABB9991F4A89 /* Build configuration list for PBXNativeTarget "GPXKit" */; - buildPhases = ( - F04171E2E9014636C89D697E24D56F86 /* Sources */, - 1632A150944C4F0A6FEFAFD43F0F7367 /* Frameworks */, - 8C8E245FA8CAD6EC6E2B6F24EC5A0D78 /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = GPXKit; - productName = GPXKit; - productReference = 0FE6DC5B30825964E7A83DD6DD4F91EE /* GPXKit.framework */; - productType = "com.apple.product-type.framework"; - }; 5B505442E72805C9555E391AC5733B3C /* Pods-GPXKit_Example */ = { isa = PBXNativeTarget; buildConfigurationList = F84A7F164F1018F7FFB7C6443E4CF57D /* Build configuration list for PBXNativeTarget "Pods-GPXKit_Example" */; @@ -405,6 +350,23 @@ productReference = B37CBB4EA663289BFD19CEC1C5B8A596 /* Pods_GPXKit_Tests.framework */; productType = "com.apple.product-type.framework"; }; + C967987317C2F8751FC5BF98A0FE0288 /* GPXKit */ = { + isa = PBXNativeTarget; + buildConfigurationList = 7E89B1FAC98D361E59EDD91738040255 /* Build configuration list for PBXNativeTarget "GPXKit" */; + buildPhases = ( + AE81E5CAAF3F40A8B3EB30E4B95470F2 /* Sources */, + ED5BF64B56C7ACB6E425EDA4FDD3213D /* Frameworks */, + 4D467C7EB06D1F928FBCB636BF4CE4E8 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = GPXKit; + productName = GPXKit; + productReference = 0FE6DC5B30825964E7A83DD6DD4F91EE /* GPXKit.framework */; + productType = "com.apple.product-type.framework"; + }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ @@ -413,11 +375,6 @@ attributes = { LastSwiftUpdateCheck = 0930; LastUpgradeCheck = 1010; - TargetAttributes = { - 12D64DA482BA10CFF17A142194B9940E = { - LastSwiftMigration = 1010; - }; - }; }; buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */; compatibilityVersion = "Xcode 3.2"; @@ -431,7 +388,7 @@ projectDirPath = ""; projectRoot = ""; targets = ( - 12D64DA482BA10CFF17A142194B9940E /* GPXKit */, + C967987317C2F8751FC5BF98A0FE0288 /* GPXKit */, 5B505442E72805C9555E391AC5733B3C /* Pods-GPXKit_Example */, AFB83F7144F605D2388576F501F944D5 /* Pods-GPXKit_Tests */, ); @@ -447,42 +404,39 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - D13A9BA2DC01CAD74BA6543A76AE94DF /* Sources */ = { + AE81E5CAAF3F40A8B3EB30E4B95470F2 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 170C8A384B9EB02A98E9CDBB55F1F664 /* Pods-GPXKit_Tests-dummy.m in Sources */, + 5AD0C3B14F1A6A330FFB471260AD66EB /* GPXAuthor.swift in Sources */, + F1282D91486782F8217CAF1CD490E170 /* GPXBounds.swift in Sources */, + 145326A6F2827546BC219B88F672E601 /* GPXCopyright.swift in Sources */, + 369AF87783519218A946FF5C09601E92 /* GPXElement.swift in Sources */, + 1E3428CC05277D40FC6BE43F035330C8 /* GPXEmail.swift in Sources */, + A69227623744CFD257C35BA743A8ECA1 /* GPXExtensions.swift in Sources */, + 7C7E9F8CED8E5289E9DA200A57C75C0F /* GPXKit-dummy.m in Sources */, + 016F0B695D538C5EFD93F59DCA2E3102 /* GPXLink.swift in Sources */, + 350F63DE55707E4882546BEF7626B25F /* GPXMetadata.swift in Sources */, + 8FCF1084A84F0AD48EB1DB8ADE93484A /* GPXParser.swift in Sources */, + 03A108E1CBF4576302896DB253BC979B /* GPXPerson.swift in Sources */, + CCF862BF0F302DDD3031047AF7FC95D7 /* GPXPoint.swift in Sources */, + E045B404D6E58FE8E8856A97E3DAB4E5 /* GPXPointSegment.swift in Sources */, + 468BC4E2E307AC450B87E047E0296034 /* GPXRoot.swift in Sources */, + C3B42DC84C537345248F52809A88E214 /* GPXRoute.swift in Sources */, + 00BDDFE079223BD05F5EDC763D99165F /* GPXRoutePoint.swift in Sources */, + D6B487B680ED8B9CB98C8238D50E6F47 /* GPXTrack.swift in Sources */, + FB86ED0424CBC87E6D8AD4B2AB45DAAF /* GPXTrackPoint.swift in Sources */, + 1272EA5B61DB6BCA024F6DE1CBBD7009 /* GPXTrackSegment.swift in Sources */, + 1E48D9041E9050A8A2E16B6E2E7670C4 /* GPXType.swift in Sources */, + 470BE17AF5444A8EC5F7DDCA2BD4BA73 /* GPXWaypoint.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - F04171E2E9014636C89D697E24D56F86 /* Sources */ = { + D13A9BA2DC01CAD74BA6543A76AE94DF /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 6E0A0A696C87CB6789D0BF9B43196309 /* GPXAuthor.swift in Sources */, - 84C0450297F7AF726B0E3C15ADB62459 /* GPXBounds.swift in Sources */, - F6E19FD48CF0BE46F072543C94DFFB01 /* GPXCopyright.swift in Sources */, - 7B17AFAAFBC2221057725FD86F194BA8 /* GPXElement.swift in Sources */, - 014194018820BB8DCF476C8EA4B9F073 /* GPXEmail.swift in Sources */, - 16D68DAA0489170B67BB53AAE8D620CF /* GPXExtensions.swift in Sources */, - 3362AA81532F97FF00CF77E542B8AB35 /* GPXKit-dummy.m in Sources */, - 6DD336F0DA066660DBCA6F9D83DBDCE5 /* GPXLink.swift in Sources */, - AB5251C29A4760831B4CEB11A3DE80A1 /* GPXMetadata.swift in Sources */, - 4FC0F1EECEB45479AAF100E9F35EE313 /* GPXParser.swift in Sources */, - 7FEBF69F53986785991E5C910EDCD36D /* GPXPerson.swift in Sources */, - D254E1598DE8C051D553AADACF6A6F6F /* GPXPoint.swift in Sources */, - D25BA8DF2FE41D46E3F5CDDC39EF5305 /* GPXPointSegment.swift in Sources */, - 2962A04B252F5926422894B03373906D /* GPXRoot.swift in Sources */, - 5DFC6CD47CE08818160BC915F6C83058 /* GPXRoute.swift in Sources */, - B67116B04EA7A554C2264B30EAF0117E /* GPXRoutePoint.swift in Sources */, - 12BCD7F94ED5BE5C542188A3D90A273F /* GPXTrack.swift in Sources */, - B7DB781DBD9C69B76283C5C946C2DE74 /* GPXTrackPoint.swift in Sources */, - 373BD3374BB05DA55A41983D2C154099 /* GPXTrackSegment.swift in Sources */, - 4980BB6213CA764DE7BBFB2416D491AE /* GPXType.swift in Sources */, - BE36102A1870BF8B1DA389BCFAF9CDA2 /* GPXWaypoint.swift in Sources */, - E63FFCFB931B6866C4E9EF21351B6B63 /* TBXML+Compression.m in Sources */, - BA60A32F7C28A91B0581D65532C31785 /* TBXML+HTTP.m in Sources */, - 006CC9E986015EFEC45D6DA4590C23DB /* TBXML.m in Sources */, + 170C8A384B9EB02A98E9CDBB55F1F664 /* Pods-GPXKit_Tests-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -492,7 +446,7 @@ 1012D5C074104D9217A656B22432387D /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = GPXKit; - target = 12D64DA482BA10CFF17A142194B9940E /* GPXKit */; + target = C967987317C2F8751FC5BF98A0FE0288 /* GPXKit */; targetProxy = 7F88B7F97924AB216F0AC9F75D44C326 /* PBXContainerItemProxy */; }; E4134071BDB9E9732944AE9C0EE3BFFC /* PBXTargetDependency */ = { @@ -504,39 +458,6 @@ /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 36B1381244C0097087CF893A0935709A /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F2960FDC83CFDEADA9C161EE06767C2C /* GPXKit.xcconfig */; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/GPXKit/GPXKit-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/GPXKit/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/GPXKit/GPXKit.modulemap"; - PRODUCT_MODULE_NAME = GPXKit; - PRODUCT_NAME = GPXKit; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 4.2; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; 3FCAE3AA9E37C8D3F2BBD2364F35A160 /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = 8010F3D26243E0B37E9E3279D59CFEE5 /* Pods-GPXKit_Tests.debug.xcconfig */; @@ -570,38 +491,6 @@ }; name = Debug; }; - 44142D7E8E4B5FE158C751F16929C48F /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F2960FDC83CFDEADA9C161EE06767C2C /* GPXKit.xcconfig */; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/GPXKit/GPXKit-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/GPXKit/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/GPXKit/GPXKit.modulemap"; - PRODUCT_MODULE_NAME = GPXKit; - PRODUCT_NAME = GPXKit; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 4.2; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; 6443C924B9BB51EE7EADADE3A326AF46 /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = 449AB63040842129352BD970926897FD /* Pods-GPXKit_Tests.release.xcconfig */; @@ -793,6 +682,38 @@ }; name = Release; }; + D77C4FBB0951DB39CA64E15E57D3C83A /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = D53523A6C5D23A4BC0127097B557616D /* GPXKit.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/GPXKit/GPXKit-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/GPXKit/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/GPXKit/GPXKit.modulemap"; + PRODUCT_MODULE_NAME = GPXKit; + PRODUCT_NAME = GPXKit; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 4.2; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; DCC383DA7F3B5E7B85368BDD7C075A15 /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = 5F61B273A30C71DC020590EC71E2E971 /* Pods-GPXKit_Example.debug.xcconfig */; @@ -828,6 +749,39 @@ }; name = Debug; }; + E664D129C749B39108211813A8D24943 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = D53523A6C5D23A4BC0127097B557616D /* GPXKit.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/GPXKit/GPXKit-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/GPXKit/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/GPXKit/GPXKit.modulemap"; + PRODUCT_MODULE_NAME = GPXKit; + PRODUCT_NAME = GPXKit; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 4.2; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ @@ -840,20 +794,20 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 8F16E3861D0C3AEC5A32794401366536 /* Build configuration list for PBXNativeTarget "Pods-GPXKit_Tests" */ = { + 7E89B1FAC98D361E59EDD91738040255 /* Build configuration list for PBXNativeTarget "GPXKit" */ = { isa = XCConfigurationList; buildConfigurations = ( - 3FCAE3AA9E37C8D3F2BBD2364F35A160 /* Debug */, - 6443C924B9BB51EE7EADADE3A326AF46 /* Release */, + D77C4FBB0951DB39CA64E15E57D3C83A /* Debug */, + E664D129C749B39108211813A8D24943 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - E5F3C7F601E957BB7BA7ABB9991F4A89 /* Build configuration list for PBXNativeTarget "GPXKit" */ = { + 8F16E3861D0C3AEC5A32794401366536 /* Build configuration list for PBXNativeTarget "Pods-GPXKit_Tests" */ = { isa = XCConfigurationList; buildConfigurations = ( - 44142D7E8E4B5FE158C751F16929C48F /* Debug */, - 36B1381244C0097087CF893A0935709A /* Release */, + 3FCAE3AA9E37C8D3F2BBD2364F35A160 /* Debug */, + 6443C924B9BB51EE7EADADE3A326AF46 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/Example/Pods/Pods.xcodeproj/xcshareddata/xcschemes/GPXKit.xcscheme b/Example/Pods/Pods.xcodeproj/xcshareddata/xcschemes/GPXKit.xcscheme index c0909fc..8d64d27 100644 --- a/Example/Pods/Pods.xcodeproj/xcshareddata/xcschemes/GPXKit.xcscheme +++ b/Example/Pods/Pods.xcodeproj/xcshareddata/xcschemes/GPXKit.xcscheme @@ -14,7 +14,7 @@ buildForAnalyzing = "YES"> @@ -45,7 +45,7 @@ @@ -63,7 +63,7 @@ diff --git a/Example/Pods/Target Support Files/GPXKit/GPXKit-umbrella.h b/Example/Pods/Target Support Files/GPXKit/GPXKit-umbrella.h index 720c1fe..1062dd9 100644 --- a/Example/Pods/Target Support Files/GPXKit/GPXKit-umbrella.h +++ b/Example/Pods/Target Support Files/GPXKit/GPXKit-umbrella.h @@ -10,9 +10,6 @@ #endif #endif -#import "TBXML+Compression.h" -#import "TBXML+HTTP.h" -#import "TBXML.h" FOUNDATION_EXPORT double GPXKitVersionNumber; FOUNDATION_EXPORT const unsigned char GPXKitVersionString[]; diff --git a/Example/Pods/Target Support Files/GPXKit/Info.plist b/Example/Pods/Target Support Files/GPXKit/Info.plist index 3f68a24..f92230d 100644 --- a/Example/Pods/Target Support Files/GPXKit/Info.plist +++ b/Example/Pods/Target Support Files/GPXKit/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 0.2.2 + 0.3.0 CFBundleSignature ???? CFBundleVersion diff --git a/GPXKit.podspec b/GPXKit.podspec index 2c8cab2..125b64e 100644 --- a/GPXKit.podspec +++ b/GPXKit.podspec @@ -8,7 +8,7 @@ Pod::Spec.new do |s| s.name = 'GPXKit' - s.version = '0.2.2' + s.version = '0.3.0' s.summary = 'A library for reading and creation of GPX location log files.' # This description is used to generate tags and improve search results. @@ -30,13 +30,13 @@ TODO: Add long description of the pod here. s.ios.deployment_target = '8.0' - s.source_files = 'Classes', 'Classes/Dependencies/TBXML/' + s.source_files = 'Classes' # s.resource_bundles = { # 'GPXKit' => ['GPXKit/Assets/*.png'] # } - s.public_header_files = 'Classes/Dependencies/TBXML/' + #s.public_header_files = 'Classes/Dependencies/TBXML/' # s.frameworks = 'UIKit', 'MapKit' # s.dependency 'TBXML' end