2009-12-23 24 views
1

Google Docs在提供憑據時會返回長3行的字符串。這是格式 SID =東西... LSID =東西... 驗證=長授權令牌iPhone Google Data API HTTP協議,來自字符串的身份驗證令牌

如果我把它存儲在NSString的,什麼是修剪一路攀升到最佳功能「 =「後面的Auth,並保持其餘?

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

回答

2

我想通了,我自己的答案通過爲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

如果它是一個三行字符串,我認爲它是用換行符(\n)分隔的字符。

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

希望能讓你開始。例如,一旦您擁有單個組件,就可以重複等於(=)字符。