我对Swift犯了一个可怕的错误,尽管进行了大量的研究,但我并未在Google上找到任何帮助。
Bitcast要求两个操作数都是指针或%116 = bitcast i8 *%115到%SS,!dbg!249 ICmp的操作数类型无效 指令%117 = icmp ne%SS%116,null,!dbg!249 PHI节点必须 至少有一个条目。如果块已经死亡,那么PHI应该是 删除! %120 = phi i32 PHI节点操作数与类型不同 结果! %119 = phi i8 * [%116,%108] LLVM错误:已损坏 找到函数,编译中止了!
我真的不知道这个错误发生在哪里,因为经过一些重构后,我在很多文件中做了更改。
我决定创建一个Q& A风格的帖子,以帮助其他开发人员找到此错误的含义。
希望它有所帮助!
答案 0 :(得分:0)
在几小时内评论/删除了我项目的所有代码之后,我终于找到导致我原始帖子中发布错误的行。
class LoginAccountViewController : UIViewController
{
@IBOutlet var loginFacebook : UIButton?
@IBOutlet var emailField : UITextField?
override func viewDidLoad()
{
super.viewDidLoad()
}
override func viewWillAppear(animated: Bool)
{
super.viewWillAppear(animated)
}
@IBAction func loginEmail(sender: AnyObject)
{
if let emailAddress = emailField?.text as? String // THIS IS THE BAD LINE
{
}
}
}
错误是我试图向名为text
的属性进行展开式向下转换,这不是可选的,因为包含该属性的对象是可选的。这是一个很大的错误。
好的解决方案是向emailField
属性进行展开式转发,然后,text
属性不需要解包来访问其值。
if let emailAddress = emailField as? UITextField
{
println(emailAddress.text)
}
答案 1 :(得分:0)
我曾经遇到过这个问题。突然我修改了它,当我替换了line(skipBtn是一个UIButton)
skipBtn.setTitleColor(.whiteColor(), forState: .Normal)
与
skipBtn.setTitleColor(UIColor.whiteColor(), forState: .Normal)
我不知道为什么,但在我看来,当你删除额外的课程名称时,此功能尚不支持100%。