在Objective-C中我用过:
[@"abc def ghi abc def ghi" rangeOfString:@"c" options:NSBackwardsSearch];
但现在NSBackWardsSearch似乎不存在.任何人都可以提供Swift的等效代码吗?
如果可能的话,我希望能够在整个字符串中找到字符编号.所以在上面的例子中它将返回3.
Cocoa框架应该可以在Swift中访问,但是你需要导入它们.尝试导入Foundation以访问NSString API.从“使用Swift with Cocoa and Objective-C”指南的“
Working with Cocoa Data Types–Strings”开始:
原文链接:/swift/320112.htmlSwift automatically bridges between the String type and the NSString class. […] To enable string bridging,just import Foundation.
此外,NSBackwardsSearch是一个枚举值(标记为&导入为option),因此您必须使用Swift的枚举/选项语法来访问它(作为NSStringCompareOptions选项类型的一部分).从C enumeration值中删除前缀,因此从值名称中删除NS.
总而言之,我们有:
import Foundation "abc def ghi abc def ghi".rangeOfString("c",options:NSStringCompareOptions.BackwardsSearch)
请注意,您可能必须使用distance
and advance
函数来正确使用rangeOfString中的范围.