如果你想变得超级健壮:
__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;
}];
(这也适用于非罗马语言;iOS 4+/OS X 10.6+。)
基本解释:
-enumerateSubstringsInRage:options:usingBlock:
做它在锡上所说的:它枚举子字符串,这些子字符串由您作为选项传入的内容定义。NSStringEnumerationByWords
说“我想要给我的话”,并NSStringEnumerationReverse
说“从字符串的末尾而不是开头开始”。
由于我们是从末尾开始的,所以 in 给我们的第一个单词substring
将是字符串中的最后一个单词,所以我们设置lastWord
为 that,然后将BOOL
指向的 by设置stop
为 YES,因此枚举立即停止。
lastWord
当然定义为__block
这样我们可以将它设置在块内并在块外看到它,并且它被初始化为nil
所以如果字符串没有单词(例如,如果它是空的或全是标点符号)我们在尝试使用时不会崩溃lastWord
.