2010-08-20 85 views

回答

7
- (NSString *)stringFromInt:(int)num { 
    NSString stringAddition; 
    if (num%100 >= 11 && num%100 <= 13) { 
     stringAddition = @"th"; 
    } 
    else { 
     switch (num % 10) { 
      case 1: stringAddition = @"st"; break; 
      case 2: stringAddition = @"nd"; break; 
      case 3: stringAddition = @"rd"; break; 
      default: stringAddition = @"th"; break; 
     } 
    } 
    return [NSString stringWithFormat:@"%i%@", num, stringAddition]; 
} 

編輯
修正了11,12,13日發行。

+2

'11','12','13'怎麼樣? – polygenelubricants 2010-08-20 10:37:36

+0

你打電話回來「11st」工作? 「第12」? 「第13」? 「31號」是好的,但「11號」是純粹的破損。如果你真的想要覆蓋所有的基礎,那麼這些特殊情況可能應該擁有自己的「if()」語句。另外我寧願這種方法被稱爲可能「ordinalFromInt」,而不是「stringFromInt」 - 該名稱並沒有告訴我,我們正在添加任何東西,我期望它是'[NSString stringWithFormat:@ 「%d」,num]'。 – 2010-08-20 11:59:34

+0

你只需要多一點,就在return的上面:'if(num> = 11 && num <= 13)stringAddition = @「th」;'。 – 2010-08-20 12:06:16

相關問題