我在我继承的应用中收到此错误。
我不确定在不破坏应用程序的情况下应该做些什么。我被告知应用程序开发的版本是Swift 3.0。我也得到"Click update to change your target's build settings to use the latest Swift syntax"
我目前正在使用Xcode 8.2.1,项目格式与Xcode 3.2兼容。
根据我所看到的,我的理解是,使用Swift 3.0版,我不应该设置它吗?将此设置为阻止代码编译的任何内容吗?
我对Swift和Xcode的不同做了很多工作,而且我在找到一个很好的解释方面遇到了一些麻烦。
这是一张图片:
答案 0 :(得分:0)
如果你使用pod。在podfile中添加以下代码。再次安装pod,希望它能运行。
import cv2
cap = cv2.VideoCapture(videopath)
cap.set(cv2.CV_CAP_PROP_POS_FRAMES, frame_number-1)
res, frame = cap.read()
答案 1 :(得分:0)
(事先注意:您可能必须在每个目标中将旧版swift版本设置为true,包括每个广告)
如果我是你,我会尝试使用 Xcode 8.1 并将使用旧版swift版设置为 true 。如果没有帮助,请尝试使用最新版本,如果这不起作用,那么项目中可能存在非常旧的swift 2 pod或代码。
我们在Xcode 8中遇到过这个问题。我们的项目是用swift 2编写的,而Xcode 8.1是支持它的最新版本。
Xcode 9支持swift 3.2,实际上是快速的3 ,但只是为了使swift 4更容易翻译。
如果一切都失败了,请尝试使用xCode的代码转换器功能。它已成功将我们的代码库从swift 3.0转换为swift 4.0。
注意: 检查每个pod及其github页面以查找哪个pod太旧,如果它是打折的库,则可能必须替换它。
答案 2 :(得分:0)
类似于上面的答案,但更完整:
# swift 3 and 4 support
# define pods that use swift 4 here
swift_4 = ['Cosmos-tvOS', 'XCGLogger-tvOS', 'Cosmos-iOS', 'XCGLogger-iOS']
post_install do |installer|
installer.pods_project.targets.each do |target|
swift_version = nil
if swift_4.include?(target.name)
swift_version = '4.0'
else
swift_version = '3.2'
end
if swift_version
target.build_configurations.each do |config|
config.build_settings['SWIFT_VERSION'] = swift_version
end
end
end
end