祝自己快乐!
我遇到以下问题。第一个逻辑:
从服务器获取json。 Json值始终是一个数字。将plist读入数组。 NSLog带有服务器json值索引的数组。
我的plist:
Key Type Value
Item 0 String New York
Item 1 String Atlanta
我的代码:
获取Json
NSString *url_req=@"http://domain.com/index.php";
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url_req]];
NSData *response = [NSURLConnection sendSynchronousRequest:request
returningResponse:nil error:nil];
NSError *jsonParsingError = nil;
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:response
options:0 error:&jsonParsingError];
NSArray *cityArray = [json objectForKey:@"city"];
for (NSDictionary *alert in pestoArray ){
myLoc = [[alert objectForKey:@"location"] integerValue];
}
Json工作得很好!
读取plist和nslog相应的值:
NSString *path = [[NSBundle mainBundle] pathForResource:@"townsList" ofType:@"plist"];
NSArray *arrayNo= [[NSArray alloc] initWithContentsOfFile:path];
NSLog(@"City %@",arrayNo[myLoc]);
到目前为止,arrayNo[myLoc]
将返回null,但arrayNo[1]
将返回亚特兰大。
如何使用JSON中的整数值作为数组索引?
谢谢!
编辑:使用arrayNo[myLoc]
时的错误输出
Indexing expression is invalid because subscript type 'NSInteger *' (aka 'int *') is not an integral or Objective-C pointer type
答案 0 :(得分:8)
根据错误消息,您将myLoc
声明为指向NSInteger(NSInteger *myLoc
)的指针,而不是实际的NSInteger(NSInteger myLoc
)。它必须是后者。