所以我最近不得不将我的项目转换为Swift 3,虽然有点痛苦,但它大部分都没问题。但是,我现在已经发现了一些我无法解决的最终错误!
我正在使用
self.convert(point, to: v)
转换视图之间的点,但Xcode不断给我构建错误,说明
'转换(_:向:)'仅适用于iOS 8.0或更高版本
这似乎是由于方法定义
public protocol UICoordinateSpace : NSObjectProtocol {
@available(iOS 8.0, *)
public func convert(_ point: CGPoint, to coordinateSpace: UICoordinateSpace) -> CGPoint
...
}
与正常的UIView碰撞
extension UIView {
...
open func convert(_ point: CGPoint, to view: UIView?) -> CGPoint
...
}
我不能为我的生活找到解决方法!有没有人遇到这个或有任何想法如何解决它?!
答案 0 :(得分:3)
您可以手动将iOS部署目标设置为7.0,Xcode将应用程序构建为目标7.0。 (我不知道以这种方式构建的应用程序可以批准用于App Store。)
因此,您可以使用Xcode 8测试该行为。
你可以用这个来沉默Xcode:
self.convert(point, to: v as UIView?)
使用Swift 3的新重命名规则,一些导入的方法可能在Swift中具有相同的签名,我担心其中一些可能没有这种解决方法,并且可能无法通过更改目标版本来解决。
答案 1 :(得分:0)
好的,如果其他人有这个问题,那么结果是因为不再支持iOS 8之前的版本。如果您将项目更新为推荐设置,它会将您的最低iOS版本设置为8,一切都会很高兴:)