【发布时间】:2015-04-02 20:18:40
【问题描述】:
如何快速获取某个字符之前的字符串?下面的代码是我在 Objective C 中的做法,但似乎无法在 Swift 中执行相同的任务。关于如何实现这一目标的任何提示或建议? rangeOfString 似乎在 swift 中根本不起作用(尽管 Swift 再次为我服务)。
NSRange range = [time rangeOfString:@" "];
NSString *startDate =
[time substringToIndex:range.location];
从上面的代码可以看出,我可以在 Objective C 中获取空格字符之前的字符串。
编辑:如果我尝试这样的事情
var string = "hello Swift"
var range : NSRange = string.rangeOfString("Swift")
我收到以下错误。
无法将表达式的类型 'NSString' 转换为类型 '(String, 选项:NSStringCompareOptions,范围:范围?,语言环境: NSLocale?)'
不确定我到底做错了什么或如何正确解决它。
【问题讨论】:
-
在this answer 中,他们还在 Swift 中使用 rangeOfString 并且它似乎有效。
-
我编辑了我的问题,以便更好地解释当我尝试应用您的解决方案时发生了什么。
-
您可以使用
Range代替NSRange:let range : Range? = string.rangeOfString("Swift")。您也可以将String转换为NSString:var range : NSRange = (string as NSString).rangeOfString("Swift")