2010-08-20 90 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

相关问题