-1

ログに記録すると、次のような答えが得られる NSString があります。

Response: oauth_token_secret=6h8hblp42jfowfy&oauth_token=9tmqsojggieln6z

2つの数字は毎回変わります。

2 つの数値を抽出し、それぞれの 1 つで 2 つの文字列を作成する方法はありますか??

お気に入り:

NSString *key = @"9tmqsojggieln6z";
4

3 に答える 3

1
//copy the string in a new string variable
NSMutableString *auth_token = [NSMutableString stringWithString:response];

NSRange match = [auth_token rangeOfString: @"&oauth_token="];
[auth_token deleteCharactersInRange: NSMakeRange(0, match.location+13)];
//auth_token will now have the auth token string

NSMutableString *auth_token_secret = [NSMutableString stringWithString:response];
NSRange range1 = [auth_token_secret rangeOfString:[NSString stringWithFormat:@"&oauth_token=%@", auth_token]];
[auth_token_secret deleteCharactersInRange:range1];
NSRange range2 = [auth_token_secret rangeOfString:@"oauth_token_secret="];
[auth_token_secret deleteCharactersInRange: range2];

//auth_token_secret will have the required secret string.
于 2012-07-23T12:32:36.910 に答える
0

私は次のことを試します:

NSString *_response = @"oauth_token_secret=6h8hblp42jfowfy&oauth_token=9tmqsojggieln6z";
NSMutableDictionary *_dictionary = [[NSMutableDictionary alloc] init];
NSArray *_parameters = [_response componentsSeparatedByString:@"&"];
for (NSString *_oneParameter in _parameters) {
    NSArray *_keyAndValue = [_oneParameter componentsSeparatedByString:@"="];
    [_dictionary setValue:[_keyAndValue lastObject] forKey:[_keyAndValue objectAtIndex:0]];
}

// reading the values
NSLog(@"token_secret : %@", [_dictionary valueForKey:@"oauth_token_secret"]);
NSLog(@"token : %@", [_dictionary valueForKey:@"oauth_token"]);
于 2012-07-23T14:02:45.063 に答える
0

私も同じ問題を抱えていました。応答として、オブジェクトの ID を文字列として取得することもあれば、数値として取得することもあります。次に、次のメソッドを持つ NSDictionary のカテゴリを作成しました。

- (NSString *)stringFromStringOrNumberForKey:(NSString *)key
{
id secret = [self objectForKey:key];
if ([secret isKindOfClass:[NSNumber class]]) {
    NSNumberFormatter * numberFormatter = [[NSNumberFormatter alloc] init];

    secret = [numberFormatter stringFromNumber:secret];
}

return secret;

}

于 2012-07-23T12:17:23.213 に答える