Nếu bạn muốn trở thành siêu mạnh mẽ:
__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;
}];
(Điều này cũng sẽ làm việc với các ngôn ngữ phi La Mã; iOS 4 +/OS X 10.6+.)
Lời giải thích cơ bản:
-enumerateSubstringsInRage:options:usingBlock:
thực hiện những gì nó nói trên tin: nó liệt kê các chất nền, được xác định bởi những gì bạn chuyển vào làm tùy chọn. NSStringEnumerationByWords
nói "Tôi muốn các từ được trao cho tôi" và NSStringEnumerationReverse
nói "bắt đầu ở cuối chuỗi thay vì bắt đầu".
Vì chúng ta đang bắt đầu từ cuối cùng, từ đầu tiên ban cho chúng ta trong substring
sẽ là từ cuối cùng trong chuỗi, vì vậy chúng tôi thiết lập lastWord
đó, và sau đó thiết lập các BOOL
trỏ đến bởi stop
YES, vì vậy điều tra dừng ngay lập tức.
lastWord
là tất nhiên định nghĩa là __block
vì vậy chúng tôi có thể thiết lập nó bên trong khối và nhìn thấy nó bên ngoài, và nó khởi tạo nil
vì vậy nếu chuỗi có không lời (ví dụ, nếu nó rỗng hoặc là tất cả dấu chấm câu), chúng tôi đừng đổ vỡ khi chúng tôi cố gắng sử dụng lastWord
.
Bạn có thể giải thích một chút không? –
Chắc chắn. Hãy để tôi cập nhật bài đăng của mình. – Wevah
Cảm ơn bạn rất nhiều vì đã giải thích! –