快速构建字符串,最有效的方式

时间:2013-10-07 01:28:40

标签: ios objective-c

我从GPS获取坐标,需要构建一个如下所示的小字符串:

      NSString *location = @"40.7,-73.9";

我的代码现在是

       NSString *latitude = [NSString stringWithFormat:@"%f", [LocationFinder    
                                singleton].location.coordinate.latitude];
       NSString *longtitude = [NSString stringWithFormat:@"%f", [LocationFinder 
                                singleton].location.coordinate.latitude];
       // Of course this doesn;t work
       NSString *location = latitude, logtitude;

现在我知道我可以做NSMutablestring并追加,但我只是想问一下这个过程是否非常有效。来自.NET和Java我讨厌Obj C这个奇怪的东西。

3 个答案:

答案 0 :(得分:4)

这里最简单的答案可能是最好的,即将+stringWithFormat:与实际的多部分格式字符串一起使用,而不是像你在那里那样单独使用:

Coordinate *coord = [LocationFinder singleton].location.coordinate; // or whatever the type here is
NSString *location = [NSString stringWithFormat:@"%f,%f", coord.latitude, coord.longitude];

但总的来说,这里的问题是无意义的微优化的一个很好的例子。

答案 1 :(得分:1)

为什么不呢?

NSString *location = [NSString stringWithFormat:@"%f,%f", [LocationFinder    
                            singleton].location.coordinate.latitude, [LocationFinder 
                            singleton].location.coordinate.longitude]

答案 2 :(得分:0)

您正在为经度值加载latitude

要获得这样的结果:@"40.7,-73.9"将需要设置float的格式化小数位数。

NSString *location = [NSString stringWithFormat:@"%.01f,%.01f",
                        [LocationFinder singleton].location.coordinate.latitude,
                        [LocationFinder singleton].location.coordinate.longitude];