在Objective-C中,我使用了:
[@"abc def ghi abc def ghi" rangeOfString:@"c" options:NSBackwardsSearch];
但是现在NSBackWardsSearch似乎不存在。谁能为Swift提供等效的代码?
我希望能够在整个字符串中找到字符数。因此,在上面的示例中,它将返回3。
可可框架应该可以在Swift中访问,但是您需要导入它们。尝试导入Foundation以访问NSString API。从“将Swift与Cocoa和Objective-C结合使用”指南的“使用Cocoa数据类型- 字符串 ”中:
Foundation
Swift会在String类型和NSString类之间自动桥接。[…]要启用字符串桥接,只需导入Foundation。
另外,它NSBackwardsSearch是一个枚举值,因此您必须使用Swift的enum / option语法来访问它(作为NSStringCompareOptions选项类型的一部分)。前缀从C枚举值中剥离,因此NS从值名称中删除。
NSBackwardsSearch
NSStringCompareOptions
NS
总而言之,我们有:
import Foundation "abc def ghi abc def ghi".rangeOfString("c", options:NSStringCompareOptions.BackwardsSearch)
请注意,您可能必须使用distance和advance函数来正确使用from的范围rangeOfString。
distance
advance
rangeOfString