我有一个 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 基本上等待这个方法在我的模型类中完成是不是这种糟糕的设计?