0

我有一个 TableViewController 和模型类TripInfo。当点击单元格附件视图时,我想将当前位置的地址返回到单元格的文本字段。我无法弄清楚如何干净地遵守 MVC 模式。

这是我到目前为止所拥有的:

1.TableViewController 实现:点击附件视图,locationManager开始更新 2.TableViewController 实现:locationManager调用didUpdateLocation 方法并将当前设置为模型对象属性self.tripInfo.location

现在我需要将此位置转换为物理地址。我打算将此代码放在一个模型类方法中,该方法将地址作为字符串返回,例如:

- (NSString *)createAddressStringFromLocation: (CLLocation *)location
{

    __block NSString *locationAddress = @"";

    CLGeocoder *gecoder = [[CLGeocoder alloc] init];
    [gecoder reverseGeocodeLocation:location completionHandler:^(NSArray *placemarks, NSError *error) {
        CLPlacemark *placemark = [placemarks lastObject];

        locationAddress = [NSString stringWithFormat:@"%@", ABCreateStringWithAddressDictionary(placemark.addressDictionary, NO)];
    }];

    return locationAddress;
}

然后在 cellForRow 中:

cell.textField.text = [NSString stringWithFormat:@"%@", [self.tripInfo createAddressStringFromLocation:self.tripInfo.fromLocation]];

让 cellForRow 基本上等待这个方法在我的模型类中完成是不是这种糟糕的设计?

4

0 回答 0