0

URLは次のとおりです。http://oauth.vk.com/blank.html#access_token=244832666b8168a3mna06f03f5324789a8022455245532b032375f193ceab923&expires_in=86400&user_id=191742

Cocoaでそれを解析し、とを取得する方法access_tokenuser_id

4

2 に答える 2

2

の後に文字列を返す-fragmentメソッドがあります。NSURL#

使うものはこちら。これは非常に基本的なものであり、エンティティ ( など) をサポートしていません。&文字列を で分割してから で分割するだけ&です=

@interface NSURL (SYBasicKeyValueParsing)
- (NSDictionary *)sy_keysAndValuesOfString:(NSString *)string;
- (NSDictionary *)sy_keysAndValuesOfFragment;
- (NSDictionary *)sy_keysAndValuesOfQuery;
@end

@implementation NSURL (SYBasicKeyValueParsing)

- (NSDictionary *)sy_keysAndValuesOfString:(NSString *)string
{
    if (!string) return nil;

    NSMutableDictionary *result = [NSMutableDictionary dictionary];

    for (NSString *pair in [string componentsSeparatedByString:@"&"]) {
        NSArray *keyAndValue = [pair componentsSeparatedByString:@"="];
        if ([keyAndValue count] == 2) {
            [result setObject:[keyAndValue objectAtIndex:1] forKey:[keyAndValue objectAtIndex:0]];
        }
    }
    return [[result copy] autorelease];
}

- (NSDictionary *)sy_keysAndValuesOfFragment
{
    return [self sy_keysAndValuesOfString:[self fragment]];
}

- (NSDictionary *)sy_keysAndValuesOfQuery
{
    return [self sy_keysAndValuesOfString:[self query]];
}

@end

したがってsy_keysAndValuesOfFragment、URL は次のようになります。

{
    "access_token" = 244832666b8168a3mna06f03f5324789a8022455245532b032375f193ceab923;
    "expires_in" = 86400;
    "user_id" = 191742;
}
于 2012-06-09T13:58:49.827 に答える
1

URL を解析するためのクラスがあります: NSURL。これで十分でない場合は、NSString クラスのcomponentsSeparatedByStringメソッドを使用してパラメーターを取得できます。

于 2012-06-09T10:13:56.597 に答える