2014-11-17 63 views
-2

我認爲下面的代碼本身就說明了一切。如何更換if-else語句以縮短某些方法?

if (card==1) { 
    cardImageString = @"myGrabbedImage1.png"; 
} else if (card==2) { 
    cardImageString = @"myGrabbedImage2.png"; 
} else if (card==3) { 
    cardImageString = @"myGrabbedImage3.png"; 
} else if (card==4) { 
    cardImageString = @"myGrabbedImage4.png"; 
} else if (card==5) { 
    cardImageString = @"myGrabbedImage5.png"; 
} else if (card==6) { 
    cardImageString = @"myGrabbedImage6.png"; 
} else if (card==7) { 
    cardImageString = @"myGrabbedImage7.png"; 
} else if (card==8) { 
    cardImageString = @"myGrabbedImage8.png"; 
} 

實際的if-else比這個大10倍。

Card = int。

CardImageString = NSString。

'卡'只用於本聲明中,可以在您的答案中刪除。

我該如何簡化所有這些?謝謝!!

回答

7
cardImageString = [NSString stringWithFormat:@"myGrabbedImage%@.png", @(card)]; 
+0

@vince:你想查一下卡,如果它是1和8之間只是櫃面。 – rckoenes

+0

「NSNumber」整數在哪個區域會有不同的輸出?我認爲把它裝入一個'NSNumber'並打印出來是最靈活的,因爲無論你使用int,long還是NSInteger或其他東西,它都可以工作,而不必爲了避免編譯器警告而進行轉換。 –

+1

好的,經過進一步測試,結果證明我錯了。 'stringWithFormat'使用系統區域設置,而不是當前的區域設置。因此,無論用戶的語言環境如何,答案中的代碼都可以工作。我需要對你的答案做一個簡單的編輯,這樣我才能撤消我的投票。對此感到抱歉。 – rmaddy

3
cardImageString = [NSString stringWithFormat:@"myGrabbedImage%d.png",card];