Wielkość liter lub zmiana przypadku NSString w Objective-C

Zastanawiałem się, jak kapitalizować łańcuch znaleziony w obiekcie w NSMutableArray.

An NSArray zawiera łańcuch 'April' w indeksie 2.
Chcę to zmienić na 'APRIL'.

Czy jest coś takiego prostego?
viewNoteDateMonth.text  = [[displayDate objectAtIndex:2] capitalized];
Author: Josh Caswell, 2011-04-07

2 answers

Here ya go:

viewNoteDateMonth.text  = [[displayDate objectAtIndex:2] uppercaseString];

Btw:
"april" na lowercase[NSString lowercaseString]
"APRIL" na UPPERCASE[NSString uppercaseString]
"April May" na Capitalized/Word Caps[NSString capitalizedString]
"April may" na Sentence caps(brak metody; zobacz obejście poniżej)

Stąd to, co chcesz, nazywa się "wielkimi literami ", a nie "wielką literą ". ;)

Co do "sentence Caps" trzeba pamiętać, że zwykle "Sentence" oznacza "cały ciąg". Jeśli chcesz dla prawdziwych zdań użyj drugiej metody, poniżej, w przeciwnym razie pierwszej:

@interface NSString ()

- (NSString *)sentenceCapitalizedString; // sentence == entire string
- (NSString *)realSentenceCapitalizedString; // sentence == real sentences

@end

@implementation NSString

- (NSString *)sentenceCapitalizedString {
    if (![self length]) {
        return [NSString string];
    }
    NSString *uppercase = [[self substringToIndex:1] uppercaseString];
    NSString *lowercase = [[self substringFromIndex:1] lowercaseString];
    return [uppercase stringByAppendingString:lowercase];
}

- (NSString *)realSentenceCapitalizedString {
    __block NSMutableString *mutableSelf = [NSMutableString stringWithString:self];
    [self enumerateSubstringsInRange:NSMakeRange(0, [self length])
                             options:NSStringEnumerationBySentences
                          usingBlock:^(NSString *sentence, NSRange sentenceRange, NSRange enclosingRange, BOOL *stop) {
        [mutableSelf replaceCharactersInRange:sentenceRange withString:[sentence sentenceCapitalizedString]];
    }];
    return [NSString stringWithString:mutableSelf]; // or just return mutableSelf.
}

@end
 377
Author: Regexident,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-26 13:16:36
 19
Author: theChrisKent,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-04-07 19:53:46