使方法在对象上工作

时间:2013-09-14 11:40:14

标签: ios objective-c methods

我正在尝试制作一个我已经制作的方法(让我们称之为自定义方法)来行动。

基本上我正在解析JSON信息并获得纬度(然后最终我将通过相同的方式获得逻辑,但不是相同的方法,不同的方法相同,如果这是有道理的)。当我使用下面它工作,我得到字符串。

NSString *mapStringLatitude = [[[[self.mapPlacesDictionary objectForKey:@"result"]objectForKey:@"geometry"]objectForKey:@"location"]valueForKey:@"lat"];

返回(通过NSLog):

mapStringLatitude: 37.790943

哪个是对的。我想让代码更容易阅读。所以我想要一个像getLatitude这样的方法为我做深入研究。我在下面的内容:

-(NSString *)getLatitude
{
    NSString *getLatitude = [[[[self.mapPlacesDictionary objectForKey:@"result"]objectForKey:@"geometry"]objectForKey:@"location"]valueForKey:@"lat"];
    return getLatitude;
}

我希望使用此方法代替上述行。我基本上看这里:http://bit.ly/1bh9o9R

它声明[someobject method],我无法做到,[self.mapDictionary getLatitude]不起作用。

有没有人对为什么有任何建议?

根据要求附上。后果。enter image description here

1 个答案:

答案 0 :(得分:2)

您可以使用

缩短代码
NSString *latitude = [self.mapPlacesDictionary valueForKeyPath:@"result.geometry.location.lat"];

甚至疯狂如:

#define kLatKeyPath @"result.geometry.location.lat"
/* ... later */
NSString *lat = [self.mapPlacesDictionary valueForKeyPath:kLatKeyPath];