Ios 在Xcode中编译时swift失败,退出代码为1-可能与桥接头相关
我有一个Obj-C项目,我正试图迁移到Swift。我的确在各种课程上取得了成功,但最近遇到了一个我似乎无法理解的问题。当我试图编译我当前的代码库时,我得到以下消息(超级无用的错误消息) 命令/Applications/Xcode.app/Contents/Developer/toolschains/xcodefault.xctoolschain/usr/bin/swiftc失败,退出代码为1 我唯一的假设是它在某种程度上与我的桥接头相关,但Xcode并没有给我足够的信息来判断这是否是真的 我正在使用Ios 在Xcode中编译时swift失败,退出代码为1-可能与桥接头相关,ios,objective-c,swift,core-plot,Ios,Objective C,Swift,Core Plot,我有一个Obj-C项目,我正试图迁移到Swift。我的确在各种课程上取得了成功,但最近遇到了一个我似乎无法理解的问题。当我试图编译我当前的代码库时,我得到以下消息(超级无用的错误消息) 命令/Applications/Xcode.app/Contents/Developer/toolschains/xcodefault.xctoolschain/usr/bin/swiftc失败,退出代码为1 我唯一的假设是它在某种程度上与我的桥接头相关,但Xcode并没有给我足够的信息来判断这是否是真的 我正
Cocoapods
将CorePlot
添加到我的项目中。我正在尝试将以下类迁移到Swift:
Obj-C类(ScatterPlotContainer.h)
我的桥接头文件
#导入
到目前为止我都试过了
当我从桥接头文件中注释掉#import
时,我在swift中得到一个错误,因为它不知道什么是cptspatterplot
我还尝试了导入,但也没有成功
思想
所以我能想到的唯一一件事可能是因为我使用的是可可豆荚,所以我需要添加一些模块名。错误消息真的没有那么有用。有人对我犯的一些刺耳的错误有什么建议吗?或者如何获得更具描述性的错误消息以了解发生了什么?我收到了相同的错误消息。 帮助的是将swift编译器设置中的优化级别设置为“无”。
这对我来说并不是一个真正的解决方案,我认为这是swift编译器中的众多错误之一。我在didSet块中包含此代码时遇到了相同的错误:
didSet {
// Test whether this view is currently visible to the user.
if super.isViewLoaded() && (super.view.window != nil) {
// (build fails even if this block is empty)
}
}
这件事花了很多时间才找到。删除
super.
允许构建继续。我做了相同的操作,但我的问题没有得到解决。我确实发现这个问题与中断的函数调用有关
函数语法没有错误,但其调用机制错误
要检查此问题的确切错误,请检查以下内容:
选择问题导航器>单击错误将在选择所有消息选项卡中显示错误>日志。
这将显示此错误的所有详细日志
向下滚动,你会看到日志,就我而言
因此,通过阅读本文,我发现函数调用有问题。我浏览了我的代码并解决了它,下面是正确和错误的代码
错误方式:
var region = MKCoordinateRegionMake(self.mapView.userLocation.coordinate, span)
// It will not shown error here but when you build project compiler shows error.
let region = MKCoordinateRegion(center: self.mapView.userLocation.coordinate, span: span)
正确的方法:
var region = MKCoordinateRegionMake(self.mapView.userLocation.coordinate, span)
// It will not shown error here but when you build project compiler shows error.
let region = MKCoordinateRegion(center: self.mapView.userLocation.coordinate, span: span)
我昨晚遇到了这个问题,上面没有任何东西能解决我的问题。 我正要在我的笔记本电脑上做一些非常糟糕的事情,这时我看到,纯属运气,一(1)个文件的文本编码设置为UTF-16?!?!WTF 这是我正在处理的最后一个文件,可能是一个糟糕的剪切/粘贴,将一个奇怪的角色“导入”到竞技场。我将这个文件中的代码剪切/粘贴到一个纯文本编辑器中。我删除了文件,重新创建并粘贴回我的代码。。。瞧!它起作用了 因此,请执行上述操作,同时检查您的文件编码!:-) 1)确定问题所在的文件。您可以将编译指令复制并粘贴到控制台,最后一个屏幕将包含错误描述。注意pid编号,确定问题所在。然后向上滚动并找到pid和相关指令-每个pid将有一个文件,因此您将找到有问题的文件 2) 查看该文件并检查您最近所做的所有更改。如果您已初始化git,则可以使用
git diff <file name>
git-diff
通过仔细地从一个文件转到另一个文件,恢复更改,并查看该文件中是否存在问题,该错误持续了3个多小时。我试了第一个答案,但没有给我任何答案。发现了问题,这是因为我有一个非计算属性,其名称与子类的计算属性相同。我真的希望调试器在将来的更新中处理此类情况时变得更加健壮:(因为其他人都在展示他们的调试器,所以我将展示我的调试器:
class Foo : UIView {
var pathPosition:Double = 0.0 { didSet {
pathPosition = min(max(0.0, pathPosition), 1.0) // crashes if this line is present
self.pathPosition = min(max(0.0, pathPosition), 1.0) // but not here
}}
}
令人难以置信的是,这并没有出现在Playplace中,但当将其放入框架中的代码中时会失败。虽然这是合法语法(用于工作,但仍在Playplace中工作),但Swift编译器似乎希望pathPosition使用self进行限定。
。注意这是(相对而言的)旧代码和用于编译的代码,可能是6.1中出现了一些问题
编辑:
我觉得自己快要发疯了,但感觉这里有一个更复杂的问题,周围的代码可能会影响这个问题。我昨晚看到一些东西被编译了,今天又修改了一些代码和设置,结果又失败了。今天,我不得不破解一堆非常愚蠢的代码来让它工作:
var pathPosition:Double = 0.0 { didSet {
// bug: insane!! - have to clobber the value before resetting!
let bugOldValue = pathPosition
self.pathPosition = 1.0 // fails without this nonsensical line!
self.pathPosition = min(max(0.0, bugOldValue), 1.0)
}}
值得一提的是,根据上面的有用说明,我得到的实际错误消息是:
PHI node has multiple entries for the same basic block with different incoming values!
%14 = phi double [ 1.000000e+00, %10 ], [ %11, %10 ], [ 1.000000e+00, %9 ], [ 0.000000e+00, %9 ], !dbg !4818
label %10
double 1.000000e+00
%11 = phi double [ %7, %entry ], !dbg !4815
LLVM ERROR: Broken function found, compilation aborted!
我担心明天。至于@Kampal,我仍在努力弄清楚在函数调用中要指定多少。例如,创建UIColor对象有时需要指定UIColor,有时不需要 这两种方法都有效:
playButton.backgroundColor = .darkGrayColor()
playButton.setTitleColor(UIColor.whiteColor(), forState: UIControlState.Normal)
这会在编译时产生退出代码1
错误,而没有任何调试器警告。#耗时的调试漩涡
playButton.setTitleColor(.whiteColor(), forState: UIControlState.Normal)
所以我有一个新的规则:当使用一个包含多个参数的函数时,要显式
现在回到播放
swift:避免漩涡这个问题的另一个解决方案是检查您没有两个或多个文件具有相同的文件名。它为我解决了这个问题。我刚刚遇到同样的错误,问题是我用一个非可选参数重写了一个方法,并将该参数设置为可选参数在覆盖中。(下面的方法
参数)
事实上,今天遇到了这个问题。这是最近从git的公共关系中拉过来的结果吗
playButton.backgroundColor = .darkGrayColor()
playButton.setTitleColor(UIColor.whiteColor(), forState: UIControlState.Normal)
playButton.setTitleColor(.whiteColor(), forState: UIControlState.Normal)
func logNetworkCallDurationForMethod(method:String, path:String, milliseconds: UInt) {
}
override func logNetworkCallDurationForMethod(method:String?, path:String, milliseconds: UInt) {
}
public protocol NSValidatedUserInterfaceItem {
func tag() -> Int
}
func validateUserInterfaceItem(anItem: NSValidatedUserInterfaceItem) -> Bool {
print(anItem.tag) // oopsie, tag is a function
return false
}
func validateUserInterfaceItem(anItem: NSValidatedUserInterfaceItem) -> Bool {
print(anItem.tag()) // this is cool for swift
return false
}
<unknown>:0: error: no such file or directory:
open func send(_ onSuccess: @escaping ((SomeType) -> Void)) -> SomeType { }
open override func send(_ onSuccess: ((SomeType) -> Void)) -> SomeType { }
NSString const *kGreenColor = @"#00C34E";