質問: objective-cを学んでいて疑問に感じた事があるので、質問させていただきます。 変数やインスタンスを宣言する場所によって外部に公開されたりされなかったりすると思うのですが。 この”外部に公開”の意味が今ひとつ分かりません 他のクラスやメソッドへ公開されるということでしょうか? または、他の開発者の方や他の人に公開されてしまうのでしょうか?
回答: ここでの'外部に公開される'とは他のクラスから参照できて実行できるように許可している、という事だと思います。 紳士的に運用しようとしている、ソースコードのある世界では、他のクラスは参照しないと取り決めてあるファイル(処理の実態がある.mなど)に記述すれば直接実行できませんし、他のクラスにインポートして利用してもらうために用意したファイル(.hなど)に記述すればそれは参照され実行できます。 一転、Objective-Cにおいては、アプリ内で宣言したクラス・メソッド・プロパティの名前だけは、解析用のツールを使うとバイナリであっても他の開発者に全て見られてしまう可能性があります。これは他のアプリからはそうそう実行はできないけれど、その気のある開発者には呼び出す合言葉が見えてしまう状況です。そして、コンパイル結果のバイナリがアプリではなくオブジェクトファイルやフレームワーク(ライブラリ)形式なら勝手にリンクされ合言葉を宣言されそして実行されてしまうかもしれません。