真的很难办-尝试在ViewController之间移动数据时,Swift Dynamic Cast失败
这看起来应该很简单——我已经研究过,看过,试过不同的东西,但就是想不出来。我有一个视图控制器,允许用户输入他们自己对酒厂的评论。这是一个来自细节酒庄页面的模式视图——我只是想用上一个视图中的酒庄名称填充这个模式视图中的标签。然后保存酒厂名称和用户评论评论部分工作正常-其名称转移给我,使我适合使用Swift Dynamic Cast撞毁我失败。非常感谢任何帮助,请参见代码: 查看视图控制器:真的很难办-尝试在ViewController之间移动数据时,Swift Dynamic Cast失败,swift,segue,viewcontroller,Swift,Segue,Viewcontroller,这看起来应该很简单——我已经研究过,看过,试过不同的东西,但就是想不出来。我有一个视图控制器,允许用户输入他们自己对酒厂的评论。这是一个来自细节酒庄页面的模式视图——我只是想用上一个视图中的酒庄名称填充这个模式视图中的标签。然后保存酒厂名称和用户评论评论部分工作正常-其名称转移给我,使我适合使用Swift Dynamic Cast撞毁我失败。非常感谢任何帮助,请参见代码: 查看视图控制器: import UIKit import CoreData class MyReviewViewContr
import UIKit
import CoreData
class MyReviewViewController: UIViewController {
var myreview:wineryReview!
var passName:String!
@IBOutlet weak var wineryNameLabel:UILabel!
@IBOutlet weak var myReview:UITextView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
wineryNameLabel.text = passName
传递的tableviewcontroller的代码:
错误:
libswiftCore.dylib swift_dynamiccastclass无条件:
0x103450860:pushq%rbp
0x103450861:movq%rsp,%rbp
0x103450864:testq%rdi,%rdi
0x103450867:je 0x10345089e;swift_DynamicCastClass无条件+62
0x103450869:movabsq$-0x7fffffffffffff,%rax
0x103450873:testq%rax,%rdi
0x103450876:jne 0x10345089e;swift_DynamicCastClass无条件+62
0x103450878:leaq 0xb52e9%rip,%rax
0x10345087f:movq%rax,%rax
0x103450882:andq%rdi,%rax
0x103450885:不允许%cs:%rax,%rax
0x103450890:cmpq%rsi,%rax
0x103450893:je 0x1034508ad;swift_DynamicCastClass无条件+77
0x103450895:movq 0x8%rax,%rax
0x103450899:testq%rax,%rax
0x10345089c:jne 0x103450890;swift_DynamicCastClass无条件+48
0x10345089e:leaq 0x36b7d%rip,%rax;Swift动态强制转换失败
0x1034508a5:movq%rax,0xb4c0c%rip;gCRAnnotations+8
0x1034508ac:int3
0x1034508ad:movq%rdi,%rax
0x1034508b0:popq%rbp
0x1034508b1:retq
0x1034508b2:不允许%cs:%rax,%rax
这是什么时候发生的?应该执行“保存”还是“仅查看加载”?仅查看加载-当按下该按钮时会崩溃,该按钮会将您带到该视图控制器-仅在按下该视图中的“保存”按钮时执行“保存”view@MikeGibbs在上一个视图控制器的prepareforsegue中是否有设置密码的内容?这比包含的save函数更相关,但没有机会运行。是的,如下所示:“覆盖函数prepareforsegueegue:UIStoryboardSegue,发送方:AnyObject!”!{如果segue.identifier==mapWinery{让mvc=segue.destinationViewController作为WineryMapViewController mvc.wineryMap=wineryAddress}如果segue.identifier==goToMyReview{让mrvc=segue.destinationViewController作为MyReviewViewController mrvc.passName=wineryNames}'}
var wineryNames = "Glenora Wine Cellars"
(because I am just testing functionaility the variable is just simply called) in the class
// MARK: - Navigation
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
if segue.identifier == "mapWinery" {
let mvc = segue.destinationViewController as WineryMapViewController
mvc.wineryMap = wineryAddress
}
if segue.identifier == "goToMyReview" {
let mrvc = segue.destinationViewController as MyReviewViewController
mrvc.passName = wineryNames
}
}