質問: macOSで Windowが持つタイトルから特定のWindowのIDを取得して色々と操作を行いたいと思ったのですが、調べているとWindowを扱うクラスとして `NSWindow`と`CGWindow`の2つがあることがわかりました。 それぞれ`NeXTSTEP`, `Core Graphic`の頭文字であることはわかったのですが、どちらをどのような時に使うのか基本的な使い分けの基準がわかりませんでした。 何か指針となるものはあるでしょうか?
回答: 基本的には`NSWindow`を使います。macOSには歴史的な理由により、Objective-CのAPIとCのAPIがあります(それぞれ、もっとも基本的なフレームワークをFoundationとCore Foundationといいます。)。`NSWindow`はFoundationのクラスでObjective-CのAPIになります。CGWindowを扱うAPI群はCのAPIになります。2つはほぼ同一の操作が可能です。ほぼ、というのは多少異なることがあるからです。一般的に、より低レベルな操作がCのAPIでは可能になっていたりします。