gpt4 book ai didi

ios - Xcode 6 swift multiple segues with prepare for segue

转载 作者:搜寻专家 更新时间:2023-10-31 08:34:14 25 4
gpt4 key购买 nike

我目前正在开发一个应用程序,其中包含一个主要的 ViewController 和另外 2 个 ViewControllers
一个是我的浏览器,它工作正常,另一个是 TableView
我有 5 个 Buttons 引导我到我的浏览器和一个应该去我的 TableView
我已将带有 Present Modally segueButton 连接到我的 TableView Controller (已嵌入 NavigationViewController).
但是每次我尝试按下按钮时,模拟器都会崩溃并出现此错误:

libswiftCore.dylib`swift_dynamicCastClassUnconditional:
0x10b9bf860: pushq %rbp
0x10b9bf861: movq %rsp, %rbp
0x10b9bf864: testq %rdi, %rdi
0x10b9bf867: je 0x10b9bf89e ; swift_dynamicCastClassUnconditional + 62
0x10b9bf869: movabsq $-0x7fffffffffffffff, %rax
0x10b9bf873: testq %rax, %rdi
0x10b9bf876: jne 0x10b9bf89e ; swift_dynamicCastClassUnconditional + 62
0x10b9bf878: leaq 0xb52e9(%rip), %rax
0x10b9bf87f: movq (%rax), %rax
0x10b9bf882: andq (%rdi), %rax
0x10b9bf885: nopw %cs:(%rax,%rax)
0x10b9bf890: cmpq %rsi, %rax
0x10b9bf893: je 0x10b9bf8ad ; swift_dynamicCastClassUnconditional + 77
0x10b9bf895: movq 0x8(%rax), %rax
0x10b9bf899: testq %rax, %rax
0x10b9bf89c: jne 0x10b9bf890 ; swift_dynamicCastClassUnconditional + 48
0x10b9bf89e: leaq 0x36b7d(%rip), %rax ; "Swift dynamic cast failed"
0x10b9bf8a5: movq %rax, 0xb4c0c(%rip) ; gCRAnnotations + 8
0x10b9bf8ac: int3
0x10b9bf8ad: movq %rdi, %rax
0x10b9bf8b0: popq %rbp
0x10b9bf8b1: retq
0x10b9bf8b2: nopw %cs:(%rax,%rax)

如果我将我的 segue 连接到另一个 viewcontroller 或者如果我使用其他按钮,它就不会工作。

我知道问题出在这段代码的某处,因为如果我删除它,一切都会正常:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {


var DestViewConroller : WebViewController = segue.destinationViewController as WebViewController



if (segue.identifier == "homeSegue"){

DestViewConroller.url = "https://edu.sh.ch"


}

if (segue.identifier == "mailSegue"){

DestViewConroller.url = "https://edumail.sh.ch/owa"

}

if (segue.identifier == "mensaSegue"){

DestViewConroller.url = "http://kanti.sh.ch/fileadmin/Redaktoren/Service/Mensa/Menueplan.pdf"

}

if (segue.identifier == "absenzenSegue"){

DestViewConroller.url = "https://edu.sh.ch/Lists/Absenzen/Heute%20%20Knftige.aspx"

}

if (segue.identifier == "stundenplanSegue"){

DestViewConroller.url = "https://edu.sh.ch/Informationen/Stundenplaene/SiteAssets/SitePages/Homepage/klassen_03_juli.pdf"


}



}

提前致谢

最佳答案

错误日志提到

Swift dynamic cast failed

所以这意味着问题发生在 swift 尝试将 segue.destinationViewController 转换为 WebViewController 时。

这只会在 destinationViewController 不是 WebViewController 时发生。

当应用程序尝试转到您提到的 tableViewController 时会发生什么。

因此,要修复此错误,您必须在每个 if 条件中初始化 DestViewController,或者检查 segue 的标识符是否不是 tableViewController 的标识符,然后初始化并转换 destinationViewController

关于ios - Xcode 6 swift multiple segues with prepare for segue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28175069/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com