#import "FirstViewController.h"@interface FirstViewController ()
{
    NSArray *dianArray; // 获取数据库点的集合
}
@property (weak, nonatomic) IBOutlet UITextField *textQiDian;
@property (weak, nonatomic) IBOutlet UITextField *textZhongDian;
@property (weak, nonatomic) IBOutlet UIButton *location;@end@implementation FirstViewController@synthesize myMapView;  //确定名称
- (void)viewDidLoad
{
    [super viewDidLoad];
    _textQiDian.delegate = self;   // 起点和终点 点击输入框return输入框会消失,但需要实现代理
    _textZhongDian.delegate = self;
    CLLocationCoordinate2D coors[2] = {0};
    coors[0].latitude = 30.50737;
    coors[0].longitude = 114.343579;
    coors[1].latitude = 30.509887;
    coors[1].longitude = 114.343779;
    BMKPolyline *polyline = [BMKPolyline polylineWithCoordinates:coors count:2];
    [myMapView addOverlay:polyline];
    [myMapView setCenterCoordinate:coors[0]];
    [myMapView setZoomLevel:17];
    [myMapView setShowsUserLocation:YES];
    [self performSelector:@selector(getAnnotation) withObject:nil];
    NSLog(@"%@",dianArray);
   
}
//折线的具体实现
- (BMKOverlayView *)mapView:(BMKMapView *)mapView viewForOverlay:(id<BMKOverlay>)overlay
{
    if ([overlay isKindOfClass:[BMKPolyline class]]) {
        BMKPolylineView *polylineView = [[BMKPolylineView alloc] initWithOverlay:overlay];
        polylineView.strokeColor = [[UIColor purpleColor] colorWithAlphaComponent:1];
        polylineView.lineWidth = 4.0;
        return polylineView;
    }
    return nil;
}
//定位
//模拟器定位的实现需要到 模拟器->调试->位置->自定位置 才可以显示
- (IBAction)startLocation:(id)sender {
    NSLog(@"进入普通定位态");
    myMapView.showsUserLocation = NO;
    myMapView.userTrackingMode = BMKUserTrackingModeFollow;
    myMapView.showsUserLocation = YES;
}//标注的具体实现
- (BMKAnnotationView *)mapView:(BMKMapView *)mapView viewForAnnotation:(id<BMKAnnotation>)annotation
{
    if ([annotation isKindOfClass:[BMKPointAnnotation class]]) {
        BMKPinAnnotationView *newAnnotationView = [[BMKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"myannotation"];
        newAnnotationView.pinColor = BMKPinAnnotationColorRed;
        //落下来的动画显示
        newAnnotationView.animatesDrop = YES;
        return newAnnotationView;
    }
    return nil;
}
//从服务器上取得所有点的经纬度
- (void)getAnnotation{
    NSURL *url = [NSURL URLWithString:@"http://localhost/Lujing/annotation.php"];
    ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
    [request setDelegate:self];
    [request setDidFailSelector:@selector(urlRequestFailed:)];
    [request setDidFinishSelector:@selector(urlRequestSucceeded:)]; //setDidFinishSelector和setDidFailSelector均没有返回值
    [request startAsynchronous];
}
//用于点击按钮发送数据
- (IBAction)sendQiDianAndZhongDian:(id)sender {
    NSString *Qidian = self.textQiDian.text;
    NSString *Zhongdian = self.textZhongDian.text;
    NSLog(@"%@ %@",Qidian,Zhongdian);
    NSString *strURL = @"http://localhost/Lujing/floyd.php";
    NSURL *url = [NSURL URLWithString:[self URLEncodedString:strURL]];
    ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
    [request setPostValue:Qidian forKey:@"start"];
    [request setPostValue:Zhongdian forKey:@"end"];
    [request setDidFailSelector:@selector(urlRequestFailed:)];
    [request setDidFinishSelector:@selector(urlRequestSucceeded:)];
    [request setDelegate:self];        //配置代理为本类
    [request setRequestMethod:@"POST"];
    [request startSynchronous];
}
//编码
- (NSString *)URLEncodedString:(NSString *)str
{
    NSString *result = ( NSString *)
    CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
                                                              (CFStringRef)str,
                                                              NULL,
                                                              CFSTR("!*();+$,%#[] "),
                                                              kCFStringEncodingUTF8));
    return result;
}//请求失败和成功
- (void)urlRequestFailed:(ASIHTTPRequest*)request
{
    NSError *error = [request error];
    NSLog(@"%@",error);
}
- (void)urlRequestSucceeded:(ASIHTTPRequest*)request
{
    NSError *error;
    NSData *data = [request responseData];
    
    //NSLog(@"%@",data);
    dianArray = [[NSArray alloc] init];
    dianArray = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:&error];
    NSLog(@"json数据%@",dianArray);
    //dianArray = [NSArray arrayWithArray:dianArray];
}
以上是我的基本代码,我从服务器上返回的json数据是
[{"jiancheng":"a","dian":"??","latitude":"30.512366","longitude":"114.338804"},{"jiancheng":"b","dian":"????","latitude":"30.511723","longitude":"114.337661"},{"jiancheng":"c","dian":"????2","latitude":"30.511012","longitude":"114.336411"},{"jiancheng":"d","dian":"?????","latitude":"30.511344","longitude":"114.334876"},{"jiancheng":"e","dian":"?????","latitude":"30.511566","longitude":"114.33391"},{"jiancheng":"f","dian":"????","latitude":"30.508793","longitude":"114.333213"},{"jiancheng":"g","dian":"???","latitude":"30.508585","longitude":"114.336384"},{"jiancheng":"h","dian":"???","latitude":"30.508862","longitude":"114.335209"},{"jiancheng":"i","dian":"???","latitude":"30.509292","longitude":"114.335311"},{"jiancheng":"j","dian":"?????","latitude":"30.511894","longitude":"114.332238"}]
在ios端接到的数据格式为
2014-05-19 18:07:10.108 whut[4385:60b] json数据(
        {
        dian = "??";
        jiancheng = a;
        latitude = "30.512366";
        longitude = "114.338804";
    },
        {
        dian = "????";
        jiancheng = b;
        latitude = "30.511723";
        longitude = "114.337661";
    },
        {
        dian = "????2";
        jiancheng = c;
        latitude = "30.511012";
        longitude = "114.336411";
    },
        {
        dian = "?????";
        jiancheng = d;
        latitude = "30.511344";
        longitude = "114.334876";
    },
        {
        dian = "?????";
        jiancheng = e;
        latitude = "30.511566";
        longitude = "114.33391";
    },
        {
        dian = "????";
        jiancheng = f;
        latitude = "30.508793";
        longitude = "114.333213";
    },
        {
        dian = "???";
        jiancheng = g;
        latitude = "30.508585";
        longitude = "114.336384";
    },
        {
        dian = "???";
        jiancheng = h;
        latitude = "30.508862";
        longitude = "114.335209";
    },
        {
        dian = "???";
        jiancheng = i;
        latitude = "30.509292";
        longitude = "114.335311";
    },
        {
        dian = "?????";
        jiancheng = j;
        latitude = "30.511894";
        longitude = "114.332238";
    }
)
2014-05-19 18:07:10.195 whut[4385:60b] location error
2014-05-19 18:07:10.412 whut[4385:3b0b] keyStatus = 0
也就是({},{},{}),我想问这样的格式用NSArray取正确吗?如果正确那么为什么viewDidLoad中的输出结果是null