[解決済み] Objective-Cのメソッド構文
質問
このメソッド宣言の構文について、どなたか説明してください。 この関数では、UIPickerView(iPhone上のスロットマシンUI)の行数を返しています。 私の理解では、メソッドは、'
pickerView
で、NSInteger を返します。
というUIPickerviewへのポインタを渡しています。
pickerView
' ...まず、なぜメソッドがパラメータと同じ名前で呼ばれるのでしょうか?
次に component という NSInteger パラメータがあり、これはどのコンポーネントの行数を数えるのかを示しています。 これを決定するロジックは、メソッドのボディにあります。
とは何ですか?
numberOfRowsInComponent
? 返している値を記述しているようですが、パラメータの途中にあるのです。
- (NSInteger) pickerView:(UIPickerView *)pickerView
numberOfRowsInComponent:(NSInteger)component
{
if (component == kStateComponent)
return [self.states count];
return[self.zips count];
}
解決方法は?
Objective-Cのメソッドは自己文書化するように設計されており、Smalltalkの豊かな伝統から借りています。
ここにあるものを説明してみます。
-(NSInteger) pickerView:(UIPickerView*)pickerView numberOfRowsInComponent:(NSInteger)component
.
-
- (NSInteger)
この最初の部分は、これがObjective Cであることを示しています。 インスタンス メソッドで、NSInteger オブジェクトを返します。-
(ダッシュ)は、これが インスタンス メソッドで、ここで+
であることを示します。 クラス メソッドを使用します。 括弧内の最初の値は、メソッドの戻り値の型です。 -
pickerView:
この部分は メッセージ名 . その フルメッセージ名 この場合pickerView:numberOfRowsInComponent:
. Objective-Cのランタイムはこのメソッド情報を受け取り、指定されたレシーバに送信します。 純粋なC言語では、これは次のようになります。
NSInteger pickerView(UIPickerView* pickerView, NSInteger component)
. しかし、これはObjective-Cなので、メッセージの名前に追加情報が詰め込まれています。 -
(UIPickerView*)pickerView
この部分は 入力 . ここでの入力は、タイプUIPickerView*
で、pickerViewというローカル変数名を持っています。 -
numberOfRowsInComponent:
この部分は、第2部の メッセージ名 . ここでわかるように、メッセージ名は受信者に渡す情報を示しやすくするために分割されます。 したがって、オブジェクトmyObjectに変数fooとbarをメッセージする場合、次のように入力します。
[myObject pickerView:foo numberOfRowsInComponent:bar];
をC++スタイルとは対照的なものにしました。
myObject.pickerView(foo, bar);
. -
(NSInteger)component
の最後の部分です。 入力 ここでの入力は、タイプNSInteger
で、ローカル変数名 component を持つ。
関連
-
[解決済み】Objective-C。NULL、nil、@""の違いは何ですか?
-
[解決済み] Objective-CでNSStringsを連結するためのショートカット集
-
[解決済み] Objective-Cの定数
-
[解決済み] Objective-Cで乱数を発生させる
-
[解決済み] メソッドと関数の違いは何ですか?
-
[解決済み] Objective-Cで、ある文字列が他の文字列を含んでいるかどうかを調べるにはどうすればよいですか?
-
[解決済み] Objective-Cのtypedef enumとは何ですか?
-
[解決済み] SwiftからObjective-Cのコードを呼び出すにはどうしたらいいですか?
-
[解決済み] C#でメソッドをパラメータとして渡す
-
[解決済み] NSDictionary または NSMutableDictionary にキーが含まれているかどうかを確認するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Xcodeのビルド失敗 "アーキテクチャx86_64の未定義シンボル"
-
[解決済み] Objective-CのNSLog関数でNSString型を出力する方法とは?
-
[解決済み] NSNumberをNSStringに変換する方法
-
[解決済み] arc4randomとarc4random_uniformの違いは何ですか?重複
-
[解決済み] Objective-CでNSNumberをintに変換する。
-
[解決済み】Cocoaでスタックトレースをコンソール/ログに出力するにはどうすればいいですか?
-
[解決済み】タイトル変更時に不要なUIButtonのアニメーションを停止させる方法は?
-
[解決済み] [Solved] UITableViewがReloadDataを完了したことを伝えるには?
-
[解決済み】iOSでメールアドレスが有効であることを確認する【重複あり
-
[解決済み】NSMutableArrayから反復処理中に削除する最良の方法は?