如何在iOS中将NSData变量转换为NSInteger变量

如何在iOS中将NSData变量转换为NSInteger变量,ios,objective-c,xml,nsdata,Ios,Objective C,Xml,Nsdata,我有下面的api方法,它返回NSData。我在另一个视图控制器中调用了此方法。如何将NSData转换为NSInteger -(NSData *)getBusXMLAtStop:(NSString*)stopnumber { NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL: [NSURL URLWithString: [NSStri

我有下面的api方法,它返回NSData。我在另一个视图控制器中调用了此方法。如何将NSData转换为NSInteger

-(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];
}

好的,如果您知道您的数据实际上代表一个整数,最简单的方法是:

NSData *data = ...;
int i;
[data getBytes: &i length: sizeof(i)];
UPD:
NSInteger
是根据目标处理器的体系结构定义的,可以是
int
long
。请随意将上述代码中的
int
替换为
NSInteger

我也不确定您的数据是否是一个实际的数字,而不是它的字符串表示形式。在这种情况下,使用类似

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

您可以在
NSString
上找到一个名为
initWithData:
的方便的初始化器。有关更多信息,请查看

示例:

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

但该方法正在返回NSData,所以我怀疑当我将其直接转换为nsstring变量时,它是否不会产生任何问题;NSInteger值=[str intValue];但它给了我一个警告,NSString可能不会响应stringWithData