URL 파라미터 파싱하는..
URLParser.h
@interface URLParser : NSObject @property (nonatomic, retain) NSArray *variables; @property (nonatomic, retain) NSArray *keys; - (id)initWithURLString:(NSString *)url; - (NSString *)valueForVariable:(NSString *)varName; @end
URLParser.m
@implementation URLParser
- (id) initWithURLString:(NSString *)url{
self = [super init];
if (self != nil) {
NSString *string = url;
NSScanner *scanner = [NSScanner scannerWithString:string];
[scanner setCharactersToBeSkipped:
[NSCharacterSet characterSetWithCharactersInString:@"&?"]];
NSString *tempString;
NSMutableArray *keys = [NSMutableArray new];
NSMutableArray *vars = [NSMutableArray new];
//ignore the beginning of the string and skip to the vars
[scanner scanUpToString:@"?" intoString:nil];
while ([scanner scanUpToString:@"&" intoString:&tempString]) {
[vars addObject:[tempString copy]];
[keys addObject:
[[tempString componentsSeparatedByString:@"="]
objectAtIndex:0]];
}
self.variables = vars;
self.keys = keys;
}
return self;
}
- (NSString *)valueForVariable:(NSString *)varName {
for (NSString *var in self.variables) {
if ([var length] > [varName length]+1 &&
[[var substringWithRange:NSMakeRange(0, [varName length]+1)]
isEqualToString:[varName stringByAppendingString:@"="]])
{
NSString *varValue =
[var substringFromIndex:[varName length]+1];
return varValue;
}
}
return nil;
}
- (void) dealloc{
self.variables = nil;
self.keys = nil;
}
@end