2011-02-17 178 views
0

我有一个对象具有一个人的地址属性。为了方便,我写了一个方法来生成一个NSString与该人的完整地址。我的实施是:有没有更好的实现方法?

/** 
Returns the full address in US format of the Addressable object. 
*/ 
- (NSString *)fullAddress { 
    NSMutableString *ret = [NSMutableString string]; 

    if (self.company) { 
     [ret appendFormat:@"%@\n", self.company]; 
    } 
    if (self.firstName) { 
     [ret appendFormat:@"%@", self.firstName]; 
    } 
    if (self.firstName && self.lastName) { 
     [ret appendString:@" "]; 
    } 
    if (self.lastName) { 
     [ret appendFormat:@"%@", self.firstName]; 
    } 
    if (self.firstName || self.lastName) { 
     [ret appendString:@"\n"]; 
    } 
    if (self.address) { 
     [ret appendFormat:@"%@\n", self.address]; 
    } 
    if (self.addressLine2 && ![self.addressLine2 isEqualToString:@""]) { 
     [ret appendFormat:@"%@\n", self.addressLine2]; 
    } 
    if (self.addressLine3 && ![self.addressLine3 isEqualToString:@""]) { 
     [ret appendFormat:@"%@\n", self.addressLine3]; 
    } 
    if (self.city) { 
     [ret appendString:self.city]; 
    } 
    if (self.city && self.state) { 
     [ret appendString:@", "]; 
    } 
    if (self.state) { 
     [ret appendString:self.state]; 
    } 
    if (self.zip) { 
     [ret appendFormat:@" %@", self.zip]; 
    } 

    return ret; 
} 

这对我来说很笨拙。有一个更好的方法吗?

+0

对codereview.stackexchange.com可能是一个很好的问题 – 2011-02-17 03:18:54

回答

0

我不这么认为。

您可以循环访问属性,但由于您没有追加一致的字符串,因此您不会因此而节省任何麻烦。

相关问题