使用模拟器加载附近地点iOS 7的列表

时间:2014-05-14 21:21:46

标签: ios objective-c uitableview mapkit

我正在使用MapKit,我正在尝试根据用户当前位置检索附近位置的列表,之后,我试图在TableView中显示它们。但是,使用iOS模拟器时,不会显示任何地方。我去了模拟器 - > debug-> location-> Apple所以不应该出现与该位置相关的结果?我糊涂了。这是我的代码:

- (void)viewDidLoad
{
    [super viewDidLoad];
    //[self CurrentLocationIdentifier];
    [self performSearch];
    _m= [MKMapItem mapItemForCurrentLocation];
 }

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

#pragma mark - Table view data source

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{

    // Return the number of sections.
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    // Return the number of rows in the section.
    return _places.count;
}


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"placeCell";
    PlaceTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
    long row = [indexPath row];

    cell.placeLabel.text = _places[row];





    return cell;
}

-(void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [super tableView:tableView didDeselectRowAtIndexPath:indexPath];
    int rowNo = indexPath.row;

    _place = [_places objectAtIndex:rowNo];



}


- (void) performSearch {
    MKLocalSearchRequest *request =
    [[MKLocalSearchRequest alloc] init];
    request.naturalLanguageQuery = _m.name;

    _places = [[NSMutableArray alloc] init];

    MKLocalSearch *search =
    [[MKLocalSearch alloc]initWithRequest:request];

    [search startWithCompletionHandler:^(MKLocalSearchResponse
                                         *response, NSError *error) {
        if (response.mapItems.count == 0)
            NSLog(@"No Matches");
        else
            for (MKMapItem *item in response.mapItems)
            {
                NSString *n = item.name;
                [_places addObject:n];


            }
    }];
}

@end

2 个答案:

答案 0 :(得分:0)

您需要添加一堆日志语句并查看控制台中显示的内容(或添加断点并使用调试器,但我猜您不知道如何执行此操作。

在performSearch开头添加一条日志语句,显示您用作搜索字符串的_m.name。将日志添加到完成处理程序的顶部,以便您知道它已被调用。

答案 1 :(得分:0)

好的,出于某种原因,在我将cellForRowAtIndexPath中的“row”类型从long更改为int而不是[indexPath row]之后,结果开始出现,我将其更改为indexPath.row