func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
var result = true
let prospectiveText = (textField.text as NSString).stringByReplacingCharactersInRange(range, withString: string)
if textField == textfield4 {
if count(string) > 0 {
let disallowedCharacterSet = NSCharacterSet(charactersInString: "0123456789.").invertedSet
let replacementStringIsLegal = string.rangeOfCharacterFromSet(disallowedCharacterSet) == nil
let resultingStringLengthIsLegal = count(prospectiveText) <= 9
let scanner = NSScanner(string: prospectiveText)
let resultingTextIsNumeric = scanner.scanDecimal(nil) && scanner.atEnd
result = replacementStringIsLegal &&
resultingStringLengthIsLegal &&
resultingTextIsNumeric
}
}
return result
}
使用
prospectiveText.characters.count
而不是
count(prospectiveText)
我刚刚迁移到Xcode7/IOS9,我的部分代码不兼容。 我从Xcode得到以下错误: “ 不能使用类型为”(字符串)“的参数列表调用”计数“” 这是我的代码:
使用新的Swift 1.2更新到Xcode 6.3.1,旧方法更改为,但是当我切换到使用时,它总是抛出此错误消息: 无法使用类型为“(String)”的参数列表调用“count” 这个片段是我从Apple doc复制过来的,但是还是不行。
问题内容: 听起来很荒谬,但是我无法修复这段代码: 无论我如何写闭包,我总是会遇到此错误: 无法使用类型为’ ‘ 的参数列表调用’filter ‘ 定义如下: 并且是Swift类(不继承自NSObject) 我在许多其他地方都使用了几乎相同的产品,而没有出现问题。有什么建议? 问题答案: 如果您不符合以下条件,则会收到该错误:
问题内容: 当我编写代码以使用indexOf从数组中查找项目时,它向我显示了上述错误。这是我的代码:- 问题答案: 为了使用的,必须采取Equatable协议。只有采用此协议,列表才能将一个项目与其他项目进行比较以找到所需的索引
我在玩代码。我在GitHub上找到的(https://github.com/avijeets/ConnectFour)被一个我无法清除的错误彻底难住了。 错误是: "无法将“[[CFCellState]]”类型的值转换为预期的参数类型“Int”" VC顶部的代码,其中定义了: 发生错误的代码:
新手在这里!我试图在Android Studio上创建一个arrayList: 但它给了我一个警告“显式类型参数字符串可以用 解决:谢谢大家的回答,我卸载了Android Studio,然后重新安装了它,我不再遇到这个问题了!