Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone Swift3.0无法转换类型为';ClosedRange<;指数>';输入';范围<;指数>';_Iphone_Xcode_Swift2_Swift3_Xcode8 - Fatal编程技术网

Iphone Swift3.0无法转换类型为';ClosedRange<;指数>';输入';范围<;指数>';

Iphone Swift3.0无法转换类型为';ClosedRange<;指数>';输入';范围<;指数>';,iphone,xcode,swift2,swift3,xcode8,Iphone,Xcode,Swift2,Swift3,Xcode8,我正试图将Swift 2.3迁移到3.0,并在转换后面对这个问题。任何关于我做错了什么的建议 Swift 3.0: 错误: 让selectorString=key.replacingCharacters(in:range,with:uppercasedFirstCharacter) 您可以使用Swift 3+ override func setValue(_ value: Any?, forKey key: String) { let upperCaseFirstCharacte

我正试图将Swift 2.3迁移到3.0,并在转换后面对这个问题。任何关于我做错了什么的建议

Swift 3.0: 错误: 让selectorString=key.replacingCharacters(in:range,with:uppercasedFirstCharacter)

您可以使用Swift 3+

override func setValue(_ value: Any?, forKey key: String) {
        let upperCaseFirstCharacter = String(key.characters.first!).uppercased()
        let range = key.startIndex..<key.index(key.startIndex, offsetBy: 1)
        let selectorString = key.replacingCharacters(in: range, with: upperCaseFirstCharacter)

        let selector = NSSelectorFromString("set\(selectorString):")
        let responds = self.responds(to: selector)

        if !responds{
            return
        }
        super.setValue(value, forKey: key)
    }

    init(dictionary: [String: Any]){
        super.init()
        setValuesForKeys(dictionary)
    }
override func setValue(value:Any?,forKey:String){
让upperCaseFirstCharacter=String(key.characters.first!).uppercased()
让range=key.startIndex。。
Cannot convert value of type 'ClosedRange<Index>' (aka 'ClosedRange<String.CharacterView.Index>') to expected argument type 'Range<Index>' (aka 'Range<String.CharacterView.Index>')
override func setValue(value: AnyObject?, forKey key: String) {
    let uppercasedFirstCharacter = String(key.characters.first!).uppercaseString

    let range = key.startIndex...key.startIndex.advancedBy(0)
    let selectorString = key.stringByReplacingCharactersInRange(range, withString: uppercasedFirstCharacter)

    let selector = NSSelectorFromString("set\(selectorString):")
    let responds = self.respondsToSelector(selector)

    if !responds {
        return
    }
let range = key.startIndex..<key.index(key.startIndex, offsetBy: 1)
// range is now type Range<Index>
extension String { 
   var firstCharacterUppercased: String {
        guard case let c = self.characters,
                   let c1 = c.first else { return self }
        return String(c1).uppercased() + String(c.dropFirst())
    }
}

/* example usage */
let key = "fooBar"
let selectorString = key.firstCharacterUppercased

print(selectorString) // FooBar
override func setValue(_ value: Any?, forKey key: String) {
        let upperCaseFirstCharacter = String(key.characters.first!).uppercased()
        let range = key.startIndex..<key.index(key.startIndex, offsetBy: 1)
        let selectorString = key.replacingCharacters(in: range, with: upperCaseFirstCharacter)

        let selector = NSSelectorFromString("set\(selectorString):")
        let responds = self.responds(to: selector)

        if !responds{
            return
        }
        super.setValue(value, forKey: key)
    }

    init(dictionary: [String: Any]){
        super.init()
        setValuesForKeys(dictionary)
    }