分段错误:11 - Xcode 6.3
Segmentation Fault: 11 - Xcode 6.3
无法存档
我的应用程序在模拟器和多个设备上运行良好(Xcode 6.3.2,swift 基于)。但是当我尝试将其存档时,出现错误 Command failed due to signal: Segmentation fault: 11
.
其他人也面临同样的问题
"Command failed due to signal: Segmentation fault: 11" - What is the issue?
Command failed due to signal: Segmentation fault: 11
根本原因?
但似乎每个人都有不同的错误原因。我无法理解我收到的错误消息。在下面发布,任何提示或技巧将不胜感激!
错误日志
0 swift 0x0000000108e5d2b8 llvm::sys::PrintStackTrace(__sFILE*) + 40
1 swift 0x0000000108e5d794 SignalHandler(int) + 452
2 libsystem_platform.dylib 0x00007fff8897bf1a _sigtramp + 26
3 libsystem_platform.dylib 0x00007fff574b7b28 _sigtramp + 3467885608
4 swift 0x0000000108a053f2 swift::serialization::Serializer::writeCrossReference(swift::Decl const*) + 578
5 swift 0x0000000108a0e275 swift::serialization::Serializer::writeAllDeclsAndTypes() + 2181
6 swift 0x0000000108a0f2f8 swift::serialization::Serializer::writeAST(llvm::PointerUnion<swift::Module*, swift::SourceFile*>) + 2600
7 swift 0x0000000108a11960 swift::serialization::Serializer::writeToStream(llvm::raw_ostream&, llvm::PointerUnion<swift::Module*, swift::SourceFile*>, swift::SILModule const*, swift::SerializationOptions const&) + 144
8 swift 0x0000000108a12521 swift::serialize(llvm::PointerUnion<swift::Module*, swift::SourceFile*>, swift::SerializationOptions const&, swift::SILModule const*) + 321
9 swift 0x0000000108746c1a frontend_main(llvm::ArrayRef<char const*>, char const*, void*) + 5514
10 swift 0x00000001087454e6 main + 1814
11 libdyld.dylib 0x00007fff8db235c9 start + 1
12 libdyld.dylib 0x0000000000000080 start + 1917700792
解决了。问题是两件事:
1)转换为双
2) 处理空数组
转换为双精度
已从 var lat: Double? = d["lat"].doubleValue
更改为 var lat: Double? = Double(d["lat"].doubleValue)
处理空数组
更改自
let brands = d["brands_unfiltered"].arrayValue {
if brands == [] {
// Do nothing (empty)
}
else{
// Do stuff
}
到
if let brands = d["brands_unfiltered"].arrayValue as Array! {
// Do stuff
}
为了找到根本原因,我停用了大部分代码,直到我发现导致存档无法运行的原因。此后,解决方案非常简单。希望这能帮助遇到同样错误的其他人。
我找到了导致我的 "Archive" 操作失败并出现此错误的代码 "Command failed due to signal: Segmentation fault: 11"
当我在 cellForRowAtIndexPath 函数中使用 indexPath 时,我需要放置一个感叹号(即 indexPath!而不是 indexPath)。但是,我还是很疑惑为什么我省略感叹号会出现这样的错误。有谁知道原因吗?
override func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!, object: PFObject!) -> PFTableViewCell! {
// code to get cell, etc
let thumbnailImage = self.userPhotos?.getFromCacheOrDownload(username,
circle: team.circle(), delegate: self, indexPath: indexPath!)
cell.userPhotoImageView.image = thumbnailImage
return cell
}
无法存档
我的应用程序在模拟器和多个设备上运行良好(Xcode 6.3.2,swift 基于)。但是当我尝试将其存档时,出现错误 Command failed due to signal: Segmentation fault: 11
.
其他人也面临同样的问题
"Command failed due to signal: Segmentation fault: 11" - What is the issue?
Command failed due to signal: Segmentation fault: 11
根本原因?
但似乎每个人都有不同的错误原因。我无法理解我收到的错误消息。在下面发布,任何提示或技巧将不胜感激!
错误日志
0 swift 0x0000000108e5d2b8 llvm::sys::PrintStackTrace(__sFILE*) + 40
1 swift 0x0000000108e5d794 SignalHandler(int) + 452
2 libsystem_platform.dylib 0x00007fff8897bf1a _sigtramp + 26
3 libsystem_platform.dylib 0x00007fff574b7b28 _sigtramp + 3467885608
4 swift 0x0000000108a053f2 swift::serialization::Serializer::writeCrossReference(swift::Decl const*) + 578
5 swift 0x0000000108a0e275 swift::serialization::Serializer::writeAllDeclsAndTypes() + 2181
6 swift 0x0000000108a0f2f8 swift::serialization::Serializer::writeAST(llvm::PointerUnion<swift::Module*, swift::SourceFile*>) + 2600
7 swift 0x0000000108a11960 swift::serialization::Serializer::writeToStream(llvm::raw_ostream&, llvm::PointerUnion<swift::Module*, swift::SourceFile*>, swift::SILModule const*, swift::SerializationOptions const&) + 144
8 swift 0x0000000108a12521 swift::serialize(llvm::PointerUnion<swift::Module*, swift::SourceFile*>, swift::SerializationOptions const&, swift::SILModule const*) + 321
9 swift 0x0000000108746c1a frontend_main(llvm::ArrayRef<char const*>, char const*, void*) + 5514
10 swift 0x00000001087454e6 main + 1814
11 libdyld.dylib 0x00007fff8db235c9 start + 1
12 libdyld.dylib 0x0000000000000080 start + 1917700792
解决了。问题是两件事: 1)转换为双 2) 处理空数组
转换为双精度
已从 var lat: Double? = d["lat"].doubleValue
更改为 var lat: Double? = Double(d["lat"].doubleValue)
处理空数组
更改自
let brands = d["brands_unfiltered"].arrayValue {
if brands == [] {
// Do nothing (empty)
}
else{
// Do stuff
}
到
if let brands = d["brands_unfiltered"].arrayValue as Array! {
// Do stuff
}
为了找到根本原因,我停用了大部分代码,直到我发现导致存档无法运行的原因。此后,解决方案非常简单。希望这能帮助遇到同样错误的其他人。
我找到了导致我的 "Archive" 操作失败并出现此错误的代码 "Command failed due to signal: Segmentation fault: 11"
当我在 cellForRowAtIndexPath 函数中使用 indexPath 时,我需要放置一个感叹号(即 indexPath!而不是 indexPath)。但是,我还是很疑惑为什么我省略感叹号会出现这样的错误。有谁知道原因吗?
override func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!, object: PFObject!) -> PFTableViewCell! {
// code to get cell, etc
let thumbnailImage = self.userPhotos?.getFromCacheOrDownload(username,
circle: team.circle(), delegate: self, indexPath: indexPath!)
cell.userPhotoImageView.image = thumbnailImage
return cell
}