该应用程序基本上通过输入初始和最终速度和时间来计算加速度,然后使用公式来计算加速度.但是,由于文本框中的值是字符串,我无法将它们转换为整数.
@IBOutlet var txtBox1 : UITextField
@IBOutlet var txtBox2 : UITextField
@IBOutlet var txtBox3 : UITextField
@IBOutlet var lblAnswer : UILabel
@IBAction func btn1(sender : AnyObject) {
let answer1 = "The acceleration is"
var answer2 = txtBox1
var answer3 = txtBox2
var answer4 = txtBox3
Run Code Online (Sandbox Code Playgroud) 我想从匹配正则表达式模式的字符串中提取子字符串.
所以我正在寻找这样的东西:
func matchesForRegexInText(regex: String!, text: String!) -> [String] {
???
}
Run Code Online (Sandbox Code Playgroud)
所以这就是我所拥有的:
func matchesForRegexInText(regex: String!, text: String!) -> [String] {
var regex = NSRegularExpression(pattern: regex,
options: nil, error: nil)
var results = regex.matchesInString(text,
options: nil, range: NSMakeRange(0, countElements(text)))
as Array<NSTextCheckingResult>
/// ???
return ...
}
Run Code Online (Sandbox Code Playgroud)
问题是,这matchesInString提供了我的一个数组NSTextCheckingResult,其中NSTextCheckingResult.range的类型的NSRange.
NSRange是不相容的Range<String.Index>,所以它阻止我使用text.substringWithRange(...)
有没有想过如何在没有太多代码的情况下在swift中实现这个简单的事情?
假设我想用空格分割字符串.此代码段在Swift 1.x中正常工作.它在Xcode 7 Beta 1中的Swift 2中不起作用.
var str = "Hello Bob"
var foo = split(str) {$0 == " "}
Run Code Online (Sandbox Code Playgroud)
我得到以下编译器错误:
Cannot invoke 'split' with an argument list of type '(String, (_) -> _)
Run Code Online (Sandbox Code Playgroud)
有人知道怎么称呼这个吗?
更新:添加了一条说明,这是针对Xcode 7 beta 1的.