2014-01-24 84 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