Objective-C无私有方法问题
PHP中文网
PHP中文网 2017-04-22 08:59:28
0
4
429

如题,Objective-C无私有方法是什么意思?确实我在.h文件中声明的所有方法除了静态方法就是public方法,但是我再.m文件中随便声明的方法,子类是看不到的,当然performselector还是可以执行的,但是这样算不算是一种私有方法呢?

PHP中文网
PHP中文网

认证高级PHP讲师

全員に返信(4)
PHPzhong

http://blog.sunnyxx.com/2014/04/13/objc_dig_interface/

を参照することをお勧めします。
いいねを押す +0
Ty80

obj c には厳密なプライベート メソッドがありません。これは、obj c 内のオブジェクトの特定のメソッドを呼び出すことによって、実際にオブジェクトにメッセージが送信され、オブジェクトはそのメッセージを処理できるかどうかを確認します。処理できる場合、対応するメソッドが呼び出されて実装されます。処理できない場合、これは完全に実行時アクションです。したがって、メソッドがヘッダー ファイルで宣言されていない場合でも、実行時に呼び出すことができます。これは、ヘッダー ファイルでメソッドを宣言した場合と何ら変わりません。Xcode は警告を表示します。

クラス自体もオブジェクトであるため、静的メソッドの呼び出しもこのオブジェクトにメッセージを送信することを意味します。

いわゆるプライベート メソッド (ヘッダー ファイルに定義されていない) は、プログラマーが自分自身に課す制約のほうが多いと思います。たとえば、ヘッダー ファイルに配置されない場合は、公開されないことを意味します。このメソッドは外部から呼び出すことは望ましくありませんが、必要に応じて使用することもできます。

この記事を参照してください。非常に詳細かつ明確です: http://blog.jobbole.com/45963/

いいねを押す +0
刘奇

はい、インターフェイス内のカテゴリと拡張機能はプライベート メソッドと同等です。
カテゴリ: クラス名 + 拡張メソッド; 拡張子: @実装領域
検索できます。

いいねを押す +0
洪涛

.h で宣言されたすべてのメソッドはデフォルトでパブリックです。
プライベートにしたい場合は、.h で宣言する必要はなく、.m で直接実装するだけです。すべてのプライベート メソッドは p_ で始めることをお勧めします。例:
- (無効) p_myFirstMethod
{
//todo..
}

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート