说我有数以千计的坐标。假设searchBarText是一个NSString。这是3:
if([searchBarText isEqual:@"1000"])
{
self.mapView.centerCoordinate = coordinate1000;
[self.mapView selectAnnotation:point1000 animated:YES];
}
else if([searchBarText isEqual:@"1002"])
{
self.mapView.centerCoordinate = coordinate1002;
[self.mapView selectAnnotation:point1002 animated:YES];
}
else if([searchBarText isEqual:@"1005"])
{
self.mapView.centerCoordinate = coordinate1005;
[self.mapView selectAnnotation:point1005 animated:YES];
}
是否有可能以某种方式将这个重复的代码浓缩成类似的东西:
self.mapView.centerCoordinate = coordinate(searchBarText);
[self.mapView selectAnnotation:point(searchBarText) animated:YES];
答案 0 :(得分:3)
这是一种应该运作的方式
//@property (strong, nonatomic)NSString *coordinate1000;
_coordinate1000 = @"it's Working!";
NSLog(@"Magic is : %@",[self valueForKey:[NSString stringWithFormat:@"coordinate%i",1000]]);
<强>买者强>: 对于您的问题,这不是推荐的解决方案,对于您的具体问题,请使用Array / Dictionary作为其他答案。
答案 1 :(得分:0)
作为替代方案,您可以将其存储在NSMutableDictionary中,其中键可以是您的变量名称,值可以是您的坐标。 虽然你可以拥有Mutable字典的通用名称。
答案 2 :(得分:-1)
制作此方法
-(NSString*) coordinate:(NSString*) searchBarText
{
return [@"coordinate" stringByAppendingString:searchBarText]
}
并使用此
self.mapView.centerCoordinate = [self coordinate:searchBarText];
[self.mapView selectAnnotation:[self coordinate:searchBarText] animated:YES];