1.得到大众点评的API接口, API接口中有相应的对应数据返回的方法
+(NSMutableArray *)requestBusinessesWithParams:(NSMutableDictionary*)params;
//请求团购
+(NSMutableArray *)requestDealsWithParams:(NSMutableDictionary *)params;
2.这个请求方法需要传递进去一个可变字典,(可变字典的数据是作为得到API接口地址的限定的:如
[self.dicssetObject:@"北京"forKey:@"city"]; //API返回接口地址的限定。
-(void)viewWillAppear:(BOOL)animated{
[self.categoryArrremoveAllObjects]; 每次返回首页都需要将分类页面的数据源删除,否则会出错。 因为每次跳转到分类界面
判定就变 例如:美食Category了, 如果返回页面的时候不在 将要展示页面中删除分类页面
里的数据,那么 判定依然还是美食Category,首页页面的 北京city无法正常调用API接口地址
展示会出错!!!!!!!!!!!!!!
self.dics = [NSMutableDictionarydictionary];
[self.dicssetObject:@"北京"forKey:@"city"]; 每次返回主页的时候都要将判定变成北京city 否则数据仍然是 分类页面的判定
并且需要将分类界面的数据源数组的数据清空。否则会无法显示主页数据;
self.arr = [DianpingApirequestBusinessesWithParams:self.dics];
[self.tableViewreloadData];
}
3. 2中方法的实现是在具体你要显示出数据的页面中调用 最后返回给一个可变数组作为当前页面的数据源。
- 当然光有这些还不够, 还需要程序员自己解析数据, 然后在API接口方法中调用解析的方法
+(NSMutableArray *)requestBusinessesWithParams:(NSMutableDictionary*)params{
NSString *path = [NSStringstringWithFormat:@"http://api.dianping.com/v1/business/find_businesses"];
// NSLog(@"%@",path);
//调用大众点评提供的对地址进行序列化的方法
path = [DianpingApiserializeURL:pathparams:params];
NSLog(@"%@",path); 序列化后得到的地址输出到控制台,就是json字符串 ,然后解析出需要解析的数据;
NSURL *url = [NSURLURLWithString:path];
NSData *data = [NSDatadataWithContentsOfURL:url];
NSDictionary *dic = [NSJSONSerializationJSONObjectWithData:dataoptions:0error:nil];
//解析
NSMutableArray *arr = [NSMutableArrayarray];
arr = [JsonParserjsonParserByDic:dic];
return arr;
}
得到地址,得到json的步骤。
1.在API接口代码中