2014-01-24 65 views
-2

如果该特定键没有任何可用值,请指教我如何从URL中删除密钥。如何从NSString中删除空值

例如,

http://api.ean.com/ean-services/rs/hotel/v3/list?minorRev=18&apiKey=rcnge5sr7v4yebfmr2p44gpq&cid=451493&city=London&CurrencyCode=USD&cyCode=US&numberOfResults=50&numberOfAdults=1&numberOfChildren=0&searchRadius=50&supplierCacheTolerance=MED_ENHANCED&arrivalDate=01/24/2014&departureDate=01/25/2014&room1=1&room2=0&room3=0&room4=0&propertyCategory=&amenities=&minStarRating=&maxStarRating=&minRate=&maxRate= 

我有这个网址我想删除键的值,如果没有任何价值。

我想这个URL转换像following

http://api.ean.com/ean-services/rs/hotel/v3/list?minorRev=18&apiKey=rcnge5sr7v4yebfmr2p44gpq&cid=451493&city=London&CurrencyCode=USD&cyCode=US&numberOfResults=50&numberOfAdults=1&numberOfChildren=0&searchRadius=50&supplierCacheTolerance=MED_ENHANCED&arrivalDate=01/24/2014&departureDate=01/25/2014&room1=1 

了,剩下的parameter是0或空白的。

什么是实现这一目标的最佳实践。 要么我想逐一申请条件,要么有其他聪明的做法。

+1

如果键没有价值,那么你不应该把它添加到UR L查询字符串,而不是稍后将其删除... –

+1

当您构建URL时,不要添加空白/空白的东西。 – Bourne

+0

查看我的回答如下 –

回答

2

采取一个方法,并传递价值,并检查天气的价值是存在的或者没有,如果有,然后将其追加否则不要像

for (NSString *key in parametersDictKeyValues) { 
     [self addArgument:key argumentValue:[parametersDict objectForKey:key]]; 
} 
-(void)addArgument:(NSString *)key argumentValue:(id)value { 
    if(key != nil && value != nil) { 
     baseUrlWithParameters = [baseUrlWithParameters stringByAppendingFormat:@"%@=%@&",key,value]; 
    } 
} 

,最后删除最后一个从baseUrlWithParameters &符号

+0

那么他怎么没有得到键/值对呢? – trojanfoe

+0

谢谢Sunny。其实这不是我的答案,但你的答案在未来可能会有用。为此也采取+1。 –

0

只要我发布我的查询,我有一个想法来实现这一点。

我用

stringByAppendingString

只包括那些参数,如果任何值不可用,则该字符串不会将其追加谁不为空

感谢&问候

+5

认真吗?那是你的解决方案? – trojanfoe