1. ホーム
  2. objective-c

[解決済み] IBOutletとIBAction

2022-04-23 16:20:23

質問

XcodeとInterface BuilderでIBOutletsとIBActionを使う目的は何ですか?

IBOutletsとIBActionsを使わなくても、何か違いがあるのでしょうか?


Swiftです。

@IBOutlet weak var textField: UITextField!

@IBAction func buttonPressed(_ sender: Any) { /* ... */ }

Objective-Cです。

@property (nonatomic, weak) IBOutlet UITextField *textField;

- (IBAction)buttonPressed:(id)sender { /* ... */ }

解決方法は?

IBActionIBOutlet は、Interface Builderで参照できる変数やメソッドを表すために定義されたマクロです。

IBAction は、次のように解決されます。 voidIBOutlet は何も解決しませんが、XcodeとInterface builderに対して、これらの変数とメソッドがInterface builderでUI要素とコードを結びつけるために使用できることを意味します。

Interface Builderを全く使わないのであれば、コードに記述する必要はありませんが、使うのであれば IBAction はIBで使用されるメソッドに、そして IBOutlet は、IBで使用されるオブジェクトのためのものです。