HTTP-протокол API данных Google iPhone, токен аутентификации из строки - PullRequest
1 голос
/ 24 декабря 2009

Документы Google возвращают длинную 3-строчную строку, если предоставлены учетные данные. Это формат SID = прочее ... LSID = прочее ... Auth = токен длинной авторизации

если я храню его в NSString, какова лучшая функция для обрезки до "=" позади Auth и сохранения остальных?

NSData *returnedData = [NSURLConnection sendSynchronousRequest:request returningResponse:theResponse error:NULL];
NSString *newDataString = [[NSString alloc]initWithData:returnedData encoding:NSUTF8StringEncoding];
NSString *authToken = [newDataString ____________];

Ответы [ 2 ]

2 голосов
/ 24 декабря 2009

Сам разобрался с ответом через документацию по NSString:

есть метод, называемый - (NSArray *) componentsSeparatedByCharactersInSet: (NSCharacterSet *) разделитель {

, который возвращает массив различных строк, разделенных NSCharacterSet.

Существует метод класса NSCharacterSet, который называется

+ (NSCharacterSet *) newLineCharacterSet {

, который разделит строку с символом новой строки на части, поэтому каждая строка становится своим собственным объектом. Вот как это работает:

NSData *returnedData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:NULL];
NSString *newDataString = [[NSString alloc]initWithData:returnedData encoding:NSUTF8StringEncoding];
NSCharacterSet *theCharacterSet = [NSCharacterSet newlineCharacterSet];
NSArray *lineArray = [newDataString componentsSeparatedByCharactersInSet:theCharacterSet];

Теперь объект lineArray содержит разные строки, каждая из которых является началом новой строки.

Не за что!

1 голос
/ 24 декабря 2009

Если это строка из трех строк, я предполагаю, что она разделена символами новой строки (\n).

NSArray *_authComponents = [threeLineString componentsSeparatedByString:@"\n"];
NSString *_sidToken = [_authComponents objectAtIndex:0]; // "SID=..."
NSString *_lsidToken = [_authComponents objectAtIndex:1]; // "LSID=..."
NSString *_authToken = [_authComponents objectAtIndex:2]; // "Auth=..."

Надеюсь, это поможет вам начать. Если у вас есть отдельные компоненты, вы можете повторить, например, символ равенства (=).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...