From e4fbc77d1e39fc927a6fb65b2dcc2d24c274236a Mon Sep 17 00:00:00 2001 From: Ahmed Khalaf Date: Mon, 17 Aug 2015 14:51:30 +0800 Subject: [PATCH 1/3] iOS 9 fixes (solves #42) --- BaasBox-iOS-SDK/BAAClient.m | 6 ++---- BaasBox-iOS-SDK/BAAObject.m | 6 ++++++ 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/BaasBox-iOS-SDK/BAAClient.m b/BaasBox-iOS-SDK/BAAClient.m index 2945143..947f84b 100644 --- a/BaasBox-iOS-SDK/BAAClient.m +++ b/BaasBox-iOS-SDK/BAAClient.m @@ -40,13 +40,11 @@ static NSString * const kBAACharactersToBeEscapedInQuery = @"@/:?&=$;+!#()',*"; static NSString * BAAPercentEscapedQueryStringKeyFromStringWithEncoding(NSString *string, NSStringEncoding encoding) { - static NSString * const kBAACharactersToLeaveUnescapedInQueryStringPairKey = @"[]."; - - return (__bridge_transfer NSString *)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (__bridge CFStringRef)string, (__bridge CFStringRef)kBAACharactersToLeaveUnescapedInQueryStringPairKey, (__bridge CFStringRef)kBAACharactersToBeEscapedInQuery, CFStringConvertNSStringEncodingToEncoding(encoding)); + return [string stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet characterSetWithCharactersInString:@"[]."]]; } static NSString * BAAPercentEscapedQueryStringValueFromStringWithEncoding(NSString *string, NSStringEncoding encoding) { - return (__bridge_transfer NSString *)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (__bridge CFStringRef)string, NULL, (__bridge CFStringRef)kBAACharactersToBeEscapedInQuery, CFStringConvertNSStringEncodingToEncoding(encoding)); + return [string stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet characterSetWithCharactersInString:@""]]; } #pragma mark - URL Serialization borrowed from AFNetworking diff --git a/BaasBox-iOS-SDK/BAAObject.m b/BaasBox-iOS-SDK/BAAObject.m index 3e149d9..119a6ad 100644 --- a/BaasBox-iOS-SDK/BAAObject.m +++ b/BaasBox-iOS-SDK/BAAObject.m @@ -26,6 +26,12 @@ @interface BAAObject () @implementation BAAObject +// This gets rid of the "Method override for the designated initializer of the superlass '-init' not found" warning in Xcode 7 (Issue #42) +- (instancetype) init { + self = [self initWithDictionary:nil]; + return nil; +} + - (instancetype) initWithDictionary:(NSDictionary *)dictionary { self = [super init]; From 7bd132bdf8c7870a619cc100f3c627926332df91 Mon Sep 17 00:00:00 2001 From: Ahmed Khalaf Date: Thu, 20 Aug 2015 08:46:22 +0800 Subject: [PATCH 2/3] corrects escaped characters --- BaasBox-iOS-SDK/BAAClient.m | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/BaasBox-iOS-SDK/BAAClient.m b/BaasBox-iOS-SDK/BAAClient.m index 947f84b..0f36f71 100644 --- a/BaasBox-iOS-SDK/BAAClient.m +++ b/BaasBox-iOS-SDK/BAAClient.m @@ -37,14 +37,14 @@ static NSString * const boundary = @"BAASBOX_BOUNDARY_STRING"; -static NSString * const kBAACharactersToBeEscapedInQuery = @"@/:?&=$;+!#()',*"; - static NSString * BAAPercentEscapedQueryStringKeyFromStringWithEncoding(NSString *string, NSStringEncoding encoding) { - return [string stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet characterSetWithCharactersInString:@"[]."]]; + NSMutableCharacterSet * allowedSet = [[NSMutableCharacterSet URLQueryAllowedCharacterSet] mutableCopy]; + [allowedSet addCharactersInString:@"[]."]; + return [string stringByAddingPercentEncodingWithAllowedCharacters:allowedSet]; } static NSString * BAAPercentEscapedQueryStringValueFromStringWithEncoding(NSString *string, NSStringEncoding encoding) { - return [string stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet characterSetWithCharactersInString:@""]]; + return [string stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]]; } #pragma mark - URL Serialization borrowed from AFNetworking From 4402874922a338ac73e0c3de4a63273213811a1c Mon Sep 17 00:00:00 2001 From: Ahmed Khalaf Date: Thu, 20 Aug 2015 09:06:55 +0800 Subject: [PATCH 3/3] adds a comment --- BaasBox-iOS-SDK/BAAClient.m | 1 + 1 file changed, 1 insertion(+) diff --git a/BaasBox-iOS-SDK/BAAClient.m b/BaasBox-iOS-SDK/BAAClient.m index 0f36f71..3b1d347 100644 --- a/BaasBox-iOS-SDK/BAAClient.m +++ b/BaasBox-iOS-SDK/BAAClient.m @@ -38,6 +38,7 @@ static NSString * const boundary = @"BAASBOX_BOUNDARY_STRING"; static NSString * BAAPercentEscapedQueryStringKeyFromStringWithEncoding(NSString *string, NSStringEncoding encoding) { + //Since we're percent-encoding the query URL component, we can use that character set to begin with. NSMutableCharacterSet * allowedSet = [[NSMutableCharacterSet URLQueryAllowedCharacterSet] mutableCopy]; [allowedSet addCharactersInString:@"[]."]; return [string stringByAddingPercentEncodingWithAllowedCharacters:allowedSet];