2011-05-25 68 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];