Created
April 29, 2011 06:14
-
-
Save zbowling/947929 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
// NSString+MWExtras.h | |
// MagicWall | |
// | |
// Created by Zac Bowling on 2/5/11. | |
// Copyright 2011 i'mhello. All rights reserved. | |
// | |
#import <Foundation/Foundation.h> | |
@interface NSString (NSString_MWExtras) | |
- (NSDictionary*)queryDictionary; | |
- (NSDictionary*)queryDictionaryUsingEncoding:(NSStringEncoding)encoding; | |
/*-(BOOL)stringBeginsWithString:(NSString*)string;*/ | |
@end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
// NSString+MWExtras.m | |
// MagicWall | |
// | |
// Created by Zac Bowling on 2/5/11. | |
// Copyright 2011 i'mhello. All rights reserved. | |
// | |
#import "NSString+MWExtras.h" | |
@implementation NSString (NSString_MWExtras) | |
- (NSDictionary*) queryDictionary { | |
return [self queryDictionaryUsingEncoding:NSUTF8StringEncoding]; | |
} | |
- (NSDictionary*)queryDictionaryUsingEncoding:(NSStringEncoding)encoding { | |
NSCharacterSet* delimiterSet = [NSCharacterSet characterSetWithCharactersInString:@"&;"]; | |
NSMutableDictionary* pairs = [NSMutableDictionary dictionary]; | |
NSScanner* scanner = [[[NSScanner alloc] initWithString:self] autorelease]; | |
while (![scanner isAtEnd]) { | |
NSString* pairString = nil; | |
[scanner scanUpToCharactersFromSet:delimiterSet intoString:&pairString]; | |
[scanner scanCharactersFromSet:delimiterSet intoString:NULL]; | |
NSArray* kvPair = [pairString componentsSeparatedByString:@"="]; | |
if (kvPair.count == 2) { | |
NSString* key = [[kvPair objectAtIndex:0] | |
stringByReplacingPercentEscapesUsingEncoding:encoding]; | |
NSString* value = [[kvPair objectAtIndex:1] | |
stringByReplacingPercentEscapesUsingEncoding:encoding]; | |
[pairs setObject:value forKey:key]; | |
} | |
} | |
return [NSDictionary dictionaryWithDictionary:pairs]; | |
} | |
/*-(BOOL)stringBeginsWithString:(NSString*)string { | |
if (string == nil) return NO; | |
if ([string length] > [self length]) return NO; | |
return (NSOrderedSame == [self compare:string options:NSAnchoredSearch range:NSMakeRange(0,[string length])]); | |
}*/ | |
@end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment