我最近将一个 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/