上一篇说到如何给一个固定的位置在地图上显示,但是手机端的定位肯定不是这样的,而是需要随着我们的位置变化而定位,所以就需要到了这一篇中的一个类CLLocationManager(定位管理器),看到manager的第一感觉,会不会是个单例,但这一个类不是一个单例,但起着和单例一样作用,因为它所指向的内存就是手机内部负责定位的组件,而这个硬件组件的地址是唯一的,所以alloc init之后,所得到的地址是一样的。话不多讲,代码以及视图才是王道。
源码的GitHub:https://github.com/YRunIntoLove/LocationPractise
相比于上一篇文章中的weiboManager中请求数据的方法,昨天进行了相应的优化,优化只不过是对参数的要求更加简洁,毕竟逻辑层越简单越好,数据层的处理麻烦点不是问题,model类没有发生变化,方法修改如下:
/*** 获取某个位置的周边微博** @param access_token 用的token值* @param myLocation 当前的位置* @param count 获取数量* @param b 获取的微博列表*/
-(void)getWeiboNearByTimeLineWithToken:(NSString *)access_token WithLocation:(CLLocationCoordinate2D)myLocation Count:(NSInteger)count BlockHandle:(WBM)b
{//创建参数字典NSDictionary * parameterDict = @{@"access_token":access_token,@"lat":[NSString stringWithFormat:@"%lf",myLocation.latitude],@"long":[NSString stringWithFormat:@"%lf",myLocation.longitude],@"count":[NSString stringWithFormat:@"%ld",count]};//开始请求[self.operationManager GET:nearby_timeLine parameters:parameterDict success:^void(AFHTTPRequestOperation * operation, NSData * data) {NSError * error;//创建一个字典接收数据NSDictionary * resultDict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:&error];//接收数组NSArray * weiboArray = resultDict[@"statuses"];//创建一个可变数组,存储最后的结果NSMutableArray * resultArray = [NSMutableArray array];//开始遍历,并且添加数据for (NSDictionary * tempDict in weiboArray){//创建一个微博模型Weibo * weibo = [[Weibo alloc]init];//开始赋值weibo.userName = tempDict[@"user"][@"name"];weibo.weiboText = tempDict[@"text"];//为坐标赋值NSString * lat = tempDict[@"geo"][@"coordinates"][0];