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

问题描述

|| 我有以下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:取决于目标处理器的体系结构定义了“ 2”,并且为“ 3”或“ 4”。随意在上面的代码中将
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];
    

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...