2011-05-25 63 views
1

我已經返回的NSData .I以下API方法都調用此方法中另一個視圖控制器。我要轉換的NSData的NSInteger的。如何是這可能。如何NSData的變量轉換成NSInteger的變量在iphone

-(NSData *)getBusXMLAtStop:(NSString*)stopnumber 
{ 
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL: 
            [NSURL URLWithString: [NSString stringWithFormat:@"http://www.google.com/ig/api?weather=,,,50500000,30500000",stopnumber]]]; 
    [request setHTTPMethod: @"GET"]; 
    dataReply = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; 
     NSLog(@"%@",dataReply); 
    return dataReply; 
} 

-(void)viewWillAppear:(BOOL)animated { 
     [super viewWillAppear:animated]; 
     api *ap = [[api alloc]init]; 
     NSData *str = [ap getBusXMLAtStop:@"1"]; 
     // Here is where I want to convert str into NSInteger type. How is this possible? 
     NSLog(@"this is success %@",ap.dataReply); 
     TWeatherParser *parser = [[TWeatherParser alloc]init]; 
     [parser getInitialiseWithData:ap.dataReply]; 
     [parser release]; 
     [ap release]; 
} 

回答

5

好吧,如果你知道你的數據是真正代表一個整數,最簡單的方法是:

NSData *data = ...; 
int i; 
[data getBytes: &i length: sizeof(i)]; 

UPD:NSInteger取決於目標處理器的架構定義和是intlong。請隨時在上面的代碼中用NSInteger代替int

我也不確定您的數據是實際的數字而不是字符串表示。在這種情況下使用類似

NSString *str = [[[NSString alloc] initWithData:data encoding:(encoding you need)] autorelease]; 
NSInteger value = [str intValue]; 
+0

我想轉換RO整數 – Rocky 2011-05-25 10:35:58

+0

@Rocky我更新了我的答案。 – Anton 2011-05-25 10:46:30

+0

但方法是返回NSData,所以我懷疑它是否不會創建任何問題,當我將它直接轉換爲nsstring變量。感謝 – Rocky 2011-05-25 10:51:22

0

你可以找到一個方便的初始化器上NSString稱爲initWithData:。請查看documentation瞭解更多信息。

例:

NSString * s = [[NSString alloc]initWithData:data encoding: NSUTF8StringEncoding];