0

これをどうにか短くしたり、スペースをとったりしたいと思います。

 totalTime = [self timeFormatted:([currentFeed duration].intValue)-1];
    NSString *word = @":00:";
    if ([totalTime rangeOfString:word].location == NSNotFound) {
        totalTime = [totalTime stringByReplacingOccurrencesOfString:@"00:" withString:@""];
        totalTime = [totalTime stringByReplacingOccurrencesOfString:@"01:" withString:@"1:"];
        totalTime = [totalTime stringByReplacingOccurrencesOfString:@"02:" withString:@"2:"];
        totalTime = [totalTime stringByReplacingOccurrencesOfString:@"03:" withString:@"3:"];
        totalTime = [totalTime stringByReplacingOccurrencesOfString:@"04:" withString:@"4:"];
        totalTime = [totalTime stringByReplacingOccurrencesOfString:@"05:" withString:@"5:"];
        totalTime = [totalTime stringByReplacingOccurrencesOfString:@"06:" withString:@"6:"];
        totalTime = [totalTime stringByReplacingOccurrencesOfString:@"07:" withString:@"7:"];
        totalTime = [totalTime stringByReplacingOccurrencesOfString:@"08:" withString:@"8:"];
        totalTime = [totalTime stringByReplacingOccurrencesOfString:@"09:" withString:@"9:"];
    }

どんな助けでも大歓迎です。

4

3 に答える 3

2

totalTime を可変文字列にすることができます。次に、マッピングを NSDictionary に入れ、それを反復できます。

NSMutableString *ms = [[totalTime mutableCopy] autorelease];

NSDictionary *d = @{@"00":@"", @"01:":@"1:", @"02:":@"2:" /* ... */};

[d enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
    [ms replaceOccurrencesOfString:key withString:obj options:NSCaseInsensitiveSearch range:NSMakeRange(0, [ms length])];
}];

totalTime = ms;

ところで、日付をフォーマットしようとしている場合は、NSDateFormatter 参照をご覧ください。

于 2013-06-19T13:23:33.950 に答える
0

NSString のカテゴリを追加します。

@implementation NSString (replace)

-(void) replace:(NSString*)old with:(NSString*)new{

self = [self stringByReplacingOccurrencesOfString:old  withString:new];
}

だからあなただけを呼び出す必要があります: [totalTime replace:@"00:" with:@""];

于 2013-06-19T13:23:22.703 に答える