2016-11-01 16 views
3

私はXcodeとswiftを初めて使用しましたが、このコード行にエラーソースを絞り込むことができました。私はすべての場所を検索しましたが、解決策を見つけることができませんでした。私は現在Xcode 8.1を使用しています。 11エラー:Swiftコンパイラエラー:シグナルのためにコマンドが失敗しました:セグメンテーションフォールト:11

 button.addTarget(self, action: #selector(handleRegister), for:.touchUpInside) 

これは私のコード

import UIKit 

class LoginController: UIViewController { 

let backGroundImageView: UIImageView = { 
    let imageView = UIImageView() 
    imageView.image = UIImage(named: "backgrd_image") 
    return imageView 
}() 

let inputsContainerView: UIView = { 
    let view = UIView() 
    view.backgroundColor = UIColor.white 
    view.translatesAutoresizingMaskIntoConstraints = false 
    view.layer.cornerRadius = 5 
    view.layer.masksToBounds = true 
    return view 

}() 

    let loginRegisterButton: UIButton = { 
    let button = UIButton(type: .system) 
    button.backgroundColor = UIColor(r: 80, g: 101, b: 161) 
    button.setTitle("Register", for: .normal) 
    button.setTitleColor(UIColor.white, for: .normal) 
    button.titleLabel?.font = UIFont.boldSystemFont(ofSize: 16) 
    button.translatesAutoresizingMaskIntoConstraints = false 

    button.addTarget(self, action: #selector(handleRegister), for:.touchUpInside) 
    return button 
}() 

// when register button is clicked, printout 123 
func handleRegister() { 
    print(123) 

} 

のいくつかは、誰もがこのセグメンテーションフォールトを引き起こしている可能性があります知っているんです。

+0

のviewDidLoad機能でそれを書くセグメンテーションフォールトは、ランタイムエラーだ、コンパイラエラーではありません。 – Alexander

+1

必ずしもそうではありません。迅速なコンパイラは、時間の経過とともに自分のコードをコンパイルしようとして多くのクラッシュをしました。ランタイムクラッシュは、セグメント化エラーではなく、iOSでEXC_INV_OPを生成します。セグメンテーションフォルトはMacOSにあります。 – BaseZen

+0

@ e.iluf "ビルド"ログに移動し、クラッシュに対応するログエントリを貼り付ける必要があります。これはXcode 5用ですが、十分に近いです。http://stackoverflow.com/questions/19014359/how-do-i-view-the-full-build-log-on-xcode5 – BaseZen

答えて

2

IMHO "button.addTarget(self、action:#select(handleRegister)、for:.touchUpInside)"で "self"を使用する理由があります。 "self"の代わりに "nil"を挿入できることを確認する。さらに、 "nil"を挿入した後に、 "self"が "LoginController"を参照していないことを理解するために、 "print(self)"を追加することができます。

+0

私の主人公、私はすべての良いものを願っています。ありがとう! –

+0

うわー。それは素晴らしい作品です。 – Neela

+0

なぜそれが受け入れられた答えではないか分かりません。 – Neela

0

は、この行を削除します

button.addTarget(self, action: #selector(handleRegister), for:.touchUpInside) 

関連する問題