iOS/자료정리
[Obj-c]callback URL 파싱해서 사용하기(URL parser)
썩소천사
2021. 9. 6. 15:52
반응형
callback URL 데이터를 가져다 쓸 경우 데이터를 뽑아야 하는데
한글이 있을 경우 NSURLComponents가 nil 로 떨어지는 이슈가 존재한다.
예외처리한 코드까지 추가하였다.
문자열에 %가 포함되어 있을 경우 parserURL = [문자열 stringByRemovingPercentEncoding] 처리후 사용하면 된다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
NSString *parserURL = @"https://www.test.co.kr?product=test상품ABC&price=30000";
NSURLComponents *components = [NSURLComponents componentsWithString:parserURL];
if (components != nil) {
for (NSURLQueryItem *item in components.queryItems) {
if ([item.name isEqualToString:@"product"]) {
product = item.value;
}
if([item.name isEqualToString:@"price"]) {
price = item.value;
}
}
}else{
NSArray *dataAry = [parserURL componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"?"]];
NSArray *paramsAry = [[dataAry objectAtIndex:1] componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"&"]];
NSMutableDictionary *tDic = [NSMutableDictionary dictionary];
for (int i =0; i<[paramsAry count]; i++) {
dataAry = [[paramsAry objectAtIndex:i] componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"="]];
[tDic setObject:[dataAry objectAtIndex:1] forKey:[dataAry objectAtIndex:0]];
}
product = [tDic valueForKey:@"product"];
price = [tDic valueForKey:@"price"];
}
|
cs |
반응형