ios - 解决快速错误: Cannot specialize a non-generic definition

标签 ios swift swift3

我最近将一个 xcode 项目从 xcode 7 转换为 xcode 8,并在此过程中从 swift 2.3 迁移到 3。该应用程序依赖于 pod 和各种框架。目前,有5个错误是相同的,错误是

Cannot specialize a non-generic definition.
While parsing this '<' as a type parameter bracket

我觉得一旦解决了其中一个错误,我就能够修复其余的错误。这是当前发生错误的代码片段

func getWordIndex(_ charIndex:Int) -> (start: Int, stop: Int) {

        let plainString =  self.fillerAttribString?.string

        var charAtIndex = plainString?.substring(with: Range<String.Index>( plainString!.characters.index(plainString!.startIndex, offsetBy: charIndex) ..<  (plainString?.characters.index((plainString?.startIndex)!, offsetBy: charIndex+1))!))


        var tCharIndex = charIndex
        var leftCharIndex = 0
        var rightCharIndex = (self.fillerAttribString?.length)! - 1
        for i in tCharIndex..<self.fillerAttribString!.length {
            charAtIndex = plainString?.substring(with: Range<String.Index>( plainString!.characters.index(plainString!.startIndex, offsetBy: i) ..<  (plainString?.characters.index((plainString?.startIndex)!, offsetBy: i+1))!))
            if (charAtIndex == " ")
            {
                rightCharIndex = i
                break
            }
        }

        tCharIndex = charIndex
        for i in (0..<tCharIndex).reversed(){


            charAtIndex = plainString?.substring(with: Range<String.Index>( plainString!.characters.index(plainString!.startIndex, offsetBy: i) ..<  (plainString?.characters.index((plainString?.startIndex)!, offsetBy: i+1))!))
            if (charAtIndex == " ")
            {
                leftCharIndex = i + 1
                break
            }
        }

        return (leftCharIndex, rightCharIndex);
    }

当前这些行发生错误

    var charAtIndex = plainString?.substring(with: Range<String.Index>( plainString!.characters.index(plainString!.startIndex, offsetBy: charIndex) ..<  (plainString?.characters.index((plainString?.startIndex)!, offsetBy: charIndex+1))!))

charAtIndex = plainString?.substring(with: Range<String.Index>( plainString!.characters.index(plainString!.startIndex, offsetBy: i) ..<  (plainString?.characters.index((plainString?.startIndex)!, offsetBy: i+1))!))

charAtIndex = plainString?.substring(with: Range<String.Index>( plainString!.characters.index(plainString!.startIndex, offsetBy: i) ..<  (plainString?.characters.index((plainString?.startIndex)!, offsetBy: i+1))!))

这些是该函数中发生此错误的 3 个代码部分。 先感谢您。我在这里环顾四周,似乎无法弄清楚。

最佳答案

func getWordIndex(_ charIndex:Int) -> (start: Int, stop: Int) {

    let plainString =  self.fillerAttribString?.string

    var charAtIndex = plainString?.substring(with: plainString!.characters.index(plainString!.startIndex, offsetBy: charIndex) ..<  (plainString?.characters.index((plainString?.startIndex)!, offsetBy: charIndex+1))!)


    var tCharIndex = charIndex
    var leftCharIndex = 0
    var rightCharIndex = (self.fillerAttribString?.length)! - 1
    for i in tCharIndex..<self.fillerAttribString!.length {
        charAtIndex = plainString?.substring(with: plainString!.characters.index(plainString!.startIndex, offsetBy: i) ..<  (plainString?.characters.index((plainString?.startIndex)!, offsetBy: i+1))!)
        if (charAtIndex == " ")
        {
            rightCharIndex = i
            break
        }
    }

    tCharIndex = charIndex
    for i in (0..<tCharIndex).reversed(){


        charAtIndex = plainString?.substring(with: plainString!.characters.index(plainString!.startIndex, offsetBy: i) ..<  (plainString?.characters.index((plainString?.startIndex)!, offsetBy: i+1))!)
        if (charAtIndex == " ")
        {
            leftCharIndex = i + 1
            break
        }
    }

    return (leftCharIndex, rightCharIndex);
}

关于ios - 解决快速错误: Cannot specialize a non-generic definition,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44009480/

相关文章:

ios - 从 ViewController 传回数据

swift - OpenGL ES 透明度不起作用,而是与背景融为一体

iOS 10.0 * 在前台处理推送通知

swift 3 - 搜索结果也带有变音符号

ios - 为什么这会在 Combine 中产生编译器错误?

objective-c - iOS - 2d 图像变成 3d

iOS canOpenURL 返回 true,但未安装应用程序(facebook)

iOS 的 MySQL 包装器

旋转手机后 IOS 标签显示不正确

ios - 关闭 block 不会在第二次 swift3 上重新加载表