String Enumeration Options - NSStringEnumerationReverse
Constants to specify kinds of substrings and styles of enumeration.
typedef NSUInteger NSStringEnumerationOptions;
enum {
NSStringEnumerationByLines = 0,
NSStringEnumerationByParagraphs = 1,
NSStringEnumerationByComposedCharacterSequences = 2,
NSStringEnumerationByWords = 3,
NSStringEnumerationBySentences = 4,
NSStringEnumerationReverse = 1UL << 8,
NSStringEnumerationSubstringNotRequired = 1UL << 9,
NSStringEnumerationLocalized = 1UL << 10
};
Constants
NSStringEnumerationByLines
- Enumerates by lines. Equivalent to
lineRangeForRange:
. NSStringEnumerationByParagraphs
- Enumerates by paragraphs. Equivalent to
paragraphRangeForRange:
. NSStringEnumerationByComposedCharacterSequences
- Enumerates by composed character sequences. Equivalent to
rangeOfComposedCharacterSequencesForRange:
. NSStringEnumerationByWords
- Enumerates by words.
NSStringEnumerationBySentences
- Enumerates by sentences.[NSString NSStringEnumerationReverse]
NSStringEnumerationReverse
- Causes enumeration to occur from the end of the specified range to the start.
NSStringEnumerationSubstringNotRequired
- A way to indicate that the block does not need substring, in which case nil will be passed. This is simply a performance shortcut.
NSStringEnumerationLocalized
- Causes the enumeration to occur using user's default locale. This does not make a difference in line, paragraph, or composed character sequence enumeration, but it may for words or sentences.
Discussion of [NSString NSStringEnumerationReverse]
These options are used with the
enumerateSubstringsInRange:options:usingBlock:
method. Pass in oneNSStringEnumerationBy...
option and combine with any of the remaining enumeration style constants using the C bitwise OR
operator.
Example of [NSString NSStringEnumerationReverse]
__block NSString *lastWord = nil;
[someNSStringHere enumerateSubstringsInRange:NSMakeRange(0, [someNSStringHere length]) options:NSStringEnumerationByWords | NSStringEnumerationReverse usingBlock:^(NSString *substring, NSRange subrange, NSRange enclosingRange, BOOL *stop) {
lastWord = substring;
*stop = YES;
}];
Example of [NSString NSStringEnumerationReverse]
NSString *myString = [NSString stringWithString:@"abcdefghijklmnopqrstuvwxyz"];
NSMutableString *reversedString = [NSMutableString stringWithCapacity:[myString length]];
[myString enumerateSubstringsInRange:NSMakeRange(0,[myString length])
options:(NSStringEnumerationReverse | NSStringEnumerationByComposedCharacterSequences)
usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop) {
[reversedString appendString:substring];
}];
// reversedString is now zyxwvutsrqponmlkjihgfedcba
Example of [NSString NSStringEnumerationReverse]
- (NSString *)reverseString:(NSString *)string {
NSMutableString *reversedString = [[NSMutableString alloc] init];
NSRange fullRange = [string rangeOfString:string];
NSStringEnumerationOptions enumerationOptions = (NSStringEnumerationReverse | NSStringEnumerationByComposedCharacterSequences);
[string enumerateSubstringsInRange:fullRange options:enumerationOptions usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop) {
[reversedString appendString:substring];
}];
return reversedString;
}