From 3743e1d643d72b2ae69c37dd566928fcdf6e9fcf Mon Sep 17 00:00:00 2001 From: Frederik Seiffert Date: Wed, 11 Mar 2020 10:55:10 +0100 Subject: [PATCH] Added missing NSURLQueryItem implementation. --- Source/NSURL.m | 53 +++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 46 insertions(+), 7 deletions(-) diff --git a/Source/NSURL.m b/Source/NSURL.m index 5f7cb3bdd..448e05707 100644 --- a/Source/NSURL.m +++ b/Source/NSURL.m @@ -2179,38 +2179,77 @@ static NSUInteger urlAlign; + (instancetype)queryItemWithName:(NSString *)name value:(NSString *)value { - return nil; + NSURLQueryItem *newQueryItem = [[NSURLQueryItem alloc] initWithName: name + value: value]; + return AUTORELEASE(newQueryItem); } -- (instancetype)initWithName:(NSString *)name +- (instancetype)initWithName:(NSString *)name value:(NSString *)value { - return nil; + self = [super init]; + if (self != nil) + { + ASSIGNCOPY(_name, name); + ASSIGNCOPY(_value, value); + } + return self; +} + +- (void) dealloc +{ + RELEASE(_name); + RELEASE(_value); + [super dealloc]; } // Reading a name and value from a query - (NSString *) name { - return nil; + return _name; } - (NSString *) value { - return nil; + return _value; } - (id) initWithCoder: (NSCoder *)acoder { - return nil; + if ((self = [super init]) != nil) + { + if ([acoder allowsKeyedCoding]) + { + _name = [acoder decodeObjectForKey: @"NS.name"]; + _value = [acoder decodeObjectForKey: @"NS.value"]; + } + else + { + _name = [acoder decodeObject]; + _value = [acoder decodeObject]; + } + } + return self; } - (void) encodeWithCoder: (NSCoder *)acoder { + if ([acoder allowsKeyedCoding]) + { + [acoder encodeObject: _name forKey: @"NS.name"]; + [acoder encodeObject: _value forKey: @"NS.value"]; + } + else + { + [acoder encodeObject: _name]; + [acoder encodeObject: _value]; + } } - (id) copyWithZone: (NSZone *)zone { - return nil; + return [[[self class] allocWithZone: zone] initWithName: _name + value: _value]; } @end