Swift 由于信号:分段故障:11 | Xcode 7.2,命令失败
我被要求将一个相当大的应用程序迁移到Swift 2。编译器不断抛出分段错误:一个函数有11个错误,出现在应用程序逻辑的不同模块中(唯一的区别是使用了变量):Swift 由于信号:分段故障:11 | Xcode 7.2,命令失败,swift,compiler-errors,swift2,xcode7,Swift,Compiler Errors,Swift2,Xcode7,我被要求将一个相当大的应用程序迁移到Swift 2。编译器不断抛出分段错误:一个函数有11个错误,出现在应用程序逻辑的不同模块中(唯一的区别是使用了变量): func loadMoreContent(){ 如果let collection=self.ratings集合,其中collection.identifier!=0, 让totalEntries=collection.totalEntries, 让objects=self.ratings?.count其中objects
func loadMoreContent(){
如果let collection=self.ratings集合,其中collection.identifier!=0,
让totalEntries=collection.totalEntries,
让objects=self.ratings?.count其中objects
以下是错误本身:
1. While type-checking 'loadMoreContent' at (path redacted).swift:46:3
2. While type-checking expression at [(path redacted).swift:54:9 - line:64:9]
RangeText="collection.nextPage().onSuccess { (value) in
if let collection = value as? Collection<Rating> {
self.ratingsCollection = collection
} else {
self.ratingsCollection = Collection<Rating>(identifier: 0)
}
}.onFailure { error in
self.ratingsCollection = Collection<Rating>(identifier: 0)
}"
3. While loading members for declaration 0x7fdda42ea2b0 at <invalid loc>
4. While deserializing 'producer' (FuncDecl #340)
1。在(路径已编辑)处进行“loadMoreContent”类型检查时。swift:46:3
2.而类型检查表达式位于[(路径编辑).swift:54:9-行:64:9]
RangeText=“collection.nextPage().onSuccess{(值)在
如果let collection=value as?collection{
self.ratingscolection=集合
}否则{
self.ratingsCollection=集合(标识符:0)
}
}.onFailure{中的错误
self.ratingsCollection=集合(标识符:0)
}"
3.在加载声明0x7fdda42ea2b0的成员时
4.反序列化“生产者”(fundecl#340)时
有人知道这个函数乍一看会有什么问题吗?我应该补充一点,它在Xcode 6/Swift 1.2中编译时没有任何更改。这是一个拉毛错误,在Xcode 7中尤其常见 偶尔,通常的XCode愚蠢的bug协议(clean、XCode重启、clean、build)会修复它。然而,这通常是由于一行或多行代码引起的。这也不一定意味着代码中有bug 因此,在重新启动之前,有时按顺序撤消最近的更改并在继续进行时尝试构建是很有用的。如果自上次成功构建以来,您的任何依赖项或框架都已更新,那么这些可能是一个候选项 有几件事似乎经常产生这种错误。因此,如果您能够找出持续导致错误的特定问题,请简要地添加到此列表: 1) 在调用使用自动关闭的方法(在调用XCGLogger中找到)时使用加号运算符进行字符串连接: 2) 无法从子类调用super.init(),特别是当super类使用默认初始值设定项时(您尚未显式创建自己的init)
3) 意外地使用一个等号来测试相等性(使用=而不是==),特别是在复杂语句中,例如在中,您可以确定loadMoreContent中的哪一行是导致故障的原因吗?也许可以从注释所有内容开始,然后一行一行地添加每一行。我的猜测是,这和“as”有关?收集'演员。我想了解更多关于您正在使用的集合类的信息会有所帮助。奇怪的是,在我更新了ReactiveCocoa之后,错误消失了,它甚至没有在集合类或函数本身中使用。。。我想,在没有移交的情况下接管一个废弃项目的乐趣。非常感谢您的输入@nwales
1. While type-checking 'loadMoreContent' at (path redacted).swift:46:3
2. While type-checking expression at [(path redacted).swift:54:9 - line:64:9]
RangeText="collection.nextPage().onSuccess { (value) in
if let collection = value as? Collection<Rating> {
self.ratingsCollection = collection
} else {
self.ratingsCollection = Collection<Rating>(identifier: 0)
}
}.onFailure { error in
self.ratingsCollection = Collection<Rating>(identifier: 0)
}"
3. While loading members for declaration 0x7fdda42ea2b0 at <invalid loc>
4. While deserializing 'producer' (FuncDecl #340)
public func myFunc(@autoclosure closure: () -> String?){
// do something
}
someInstance.myFunc("Hi " + nameStr + "!")