1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

NSObject とはなんのためにあるのか?

Posted at

NSObjectは、Objective-Cでオブジェクト指向プログラミングを行うための基本的なクラスであり、Swiftでも利用することができます。このクラスは、Swiftのクラスの基本であるNSObjectプロトコルを準拠することで、Objective-Cとの互換性を保ちながらSwiftでオブジェクト指向プログラミングを行うことができます。

NSObjectを継承することで、クラスがObjective-Cと互換性があるとともに、以下のような機能を利用することができます。

インスタンスの生成と解放
クラスの情報の取得
メソッドの呼び出し
KVC (Key-Value Coding)、KVO (Key-Value Observing)、NSNotification、NSTimer などの機能
ただし、SwiftではObjective-Cとの互換性が重要でない場合は、NSObjectを継承する必要はありません。また、SwiftにはAnyObjectプロトコルがあり、NSObjectプロトコルに必要なメソッドを準拠することで、Objective-Cとの互換性を持たせることもできます。

最近のSwiftでは、NSObjectクラスを継承する必要がある場面は減ってきており、Swift独自のプロトコルや型を使用することが推奨されています。そのため、必要に応じてNSObjectを継承するか、継承しないかを選択する必要があります。

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?