我只是在Xcode8中运行了我的项目,它要求我转换为swift3语法,所以我做到了。显然,从2天开始我要修复的那些错误很多。在我将所有内容逐步转换为swift3之后(错误解决)。但是当我构建时,它甚至没有在设备或模拟器中运行过一次。
为什么它没有进一步发展?
它甚至不会抛出任何错误来修复任何错误(一遍又一遍地检查)
我很担心。我需要检查构建设置或代码中的任何内容吗?
请参考下图
警告:
最佳答案
Xcode8编译器错误:
有时,编译器未检测到Xcode8中的所有错误
所以我开始在swift文件中逐一评论方法/类
在那里,我发现一种方法正在使编译器麻烦,该方法在我更改了那些语法之后还没有更新为swift3语法,然后它成功运行了
我们需要检查很多事情,如果有人在Xcode8 Swift3中遇到上述问题,请参考以下语法
感谢您的上述评论,这有助于我思考问题
NSFetchRequest之前:
//let fetchRequest = NSFetchRequest()
Swift3中的NSFetchRequest:
let fetchRequest = NSFetchRequest<Sample>(entityName: "Sample")
注意:**所有委托方法请重新编写
声明带有参数的方法-不变,只是调用此方法
func getPageThumbnail(upc:String, pagenum:Int)-> UIImage
{
}
之前:
if let xImage = GF.getPageThumbnail(self.upcLabel.text!, pagenum: 3) as UIImage?
现在在Swift3中:
if let xImage = GF.getPageThumbnail(upc:self.upcLabel.text!, pagenum: 3) as UIImage?
Swift3中的调度队列:
DispatchQueue.global().async {
DispatchQueue.main.async {
}
}
Swift3:CGRect制作为CGRect
CGRect(x:0, y:0, width:80, height:80)
CGPoint制作到CGPoint
CGPoint(x:10, y:20);
Swift3中的选择器:
let myTapGesture = UITapGestureRecognizer(target: self, action: #selector(tapped(_:)) )
func tapped(_ sender: UITapGestureRecognizer) {
}
Swift3中的下标
extension String {
// right(x) and left(x) function to get substring
func right(i: Int) -> String?
{
return self[self.length-i ... self.length-1 ]
}
func left(i: Int) -> String?
{
return self[0 ... i-1]
}
subscript (i: Int) -> Character {
return self[self.characters.index(self.startIndex, offsetBy: i)]
}
subscript (i: Int) -> String {
return String(self[i] as Character)
}
//added swift3 replacement
subscript (r: CountableClosedRange<Int>) -> String {
get {
let startIndex = self.index(self.startIndex, offsetBy: r.lowerBound)
let endIndex = self.index(startIndex, offsetBy: r.upperBound - r.lowerBound)
return self[startIndex...endIndex]
}
}
}
关于ios - Xcode8:为什么Xcode8在转换为Swift3语法后无法构建/编译,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39637007/