1

ファイル内で宣言され、合成された変数がNSArrayあり.hます.m

@property (nonatomic, strong) NSArray *placemarksArray;  //.h file
@synthesize placemarksArray; //.m

-(BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString 
{
    if (!geocoder)
    geocoder = [[CLGeocoder alloc] init];
    [geocoder geocodeAddressString:searchString completionHandler:^(NSArray* placemarks, NSError* error){

if ([placemarks count] > 0) {

        for (CLPlacemark* aPlacemark in placemarks)
        {

            self.street = placemark.thoroughfare;
            self.city = placemark.locality;
            self.state = placemark.administrativeArea;
            self.zip = placemark.postalCode;


            NSMutableString *result = [NSMutableString string];
            if (self.street)
                [result appendString:self.street];
            if (self.street && (self.city || self.state || self.zip))
                [result appendString:@", "];
            if (self.city)
                [result appendString:self.city];
            if (self.city && self.state)
                [result appendString:@", "];
            if (self.state)
                [result appendString:self.state];
            if (self.zip)
                [result appendFormat:@" %@", self.zip];
            [self.placemarksArray addObject:result];
            NSLog(@"%@", result);

            [self.searchDisplayController.searchResultsTableView reloadData];
        }
    }

}];
return NO;

}

tableView:cellForRowAtIndexPath質問:に表示placemarksArrayするように設定するにはどうすればよいtableViewですか?

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath  

上記のコードは Apple から取得したものです: Geocoder オブジェクトについて

4

1 に答える 1

2

cellForRowAtIndexPathメソッド に追加します。

cell.textLabel.text = [placemarksArray objectAtIndex:indexPath.row];

これにより、各セルのテキストが、配列の n 番目のインデックスにあるテキストと等しくなるように設定されますplacemarksArray.。たとえば、行 3 のセルには、配列のインデックス 3 のテキストが含まれます。

于 2013-04-12T05:35:29.870 に答える