特定の「id型のドキュメント」に私を指摘できますか?私は動的な型指定ドキュメントを使ってきましたが、型IDの使い方を知りたいと思います。特にidがnullであるかどうかをチェックする方法。id動的型のドキュメント
答えて
id
タイプは、元のタグが暗示しているように、Cocoa/Cocoa Touchフレームワークではなく、Objective-C言語自体に直接関係しています。ダイナミックなタイピングも含まれていません。 Here's a little introduction in Apple's docs.
キーワード
nil
がnullオブジェクトとして定義され、0
の値を持つid
。id
,nil
、その他の基本型Objective-Cはヘッダファイルobjc/objc.h
に定義されています。
nil
およびNULL
は同等(ゼロポインタ)なので、互換性があります。私はあなたの質問を誤解している場合
id myId = [[something alloc] init];
// Short for if (myId == nil)
if (!myId) {
// myId is nil
} else {
// myId is not nil
}
申し訳ありませんが、あなただけのようなものはしないだろう:
if文の基本で、あなただけのこの操作を行う基本的にあなたがid
を使用
// given
id sender;
if (sender == nil) {}
をそれに割り当てられている可能性のあるオブジェクトをキャッチします。だからあなたのような何かを行うことができます。
id name = [NSString stringWithString:@"john"];
を、今名前が[name class]
を呼び出すことによって確認することができNSString
対象になります。
詳細については、this pageのIDセクションをご覧ください。
はい、私はあまりにも思ったことだが、idオブジェクトをnullにする代わりに[NSNull null]に設定しています。 "if(myIdVar)"チェックが機能しません...なぜ私はちょうどその私がやっていることに特有です。 –
The Objective-C Programming Language - 具体的にはオブジェクト、クラス、メッセージングの章を参照してください。
Objective-Cでは、オブジェクト識別子は別のデータ型です:id。この型は、クラスに関係なく、あらゆる種類のオブジェクトの一般的な型であり、クラスのインスタンスやクラスオブジェクト自体に使用できます。 [...]
キーワードnilはヌルオブジェクト、値0のIDとして定義されます。id、nil、その他のObjective-Cの基本タイプは、ヘッダファイルobjc/objc.hで定義されています。
変数を値で比較するには、単純に==演算子を使用します。だから、ゼロをテストするために、あなたが実行します。
id
は、オブジェクトへのポインタとして定義された:私ははっきりとそれを見て、私はここでそれを言うよので、任意の他の回答で述べていませんでした
someVariable == nil
。(ID)0 - -
nil
は、IDとしてゼロキャストである結果として、次のコード
NSString * myString = nil;
id idString = myString;
if (idString == nil) NSLog(@"idString == nil");
if (idString == NULL) NSLog(@"idString == NULL");
if (idString == (id)0) NSLog(@"idString == (id)0");
は、以下の出力があります。
2011-09-12 07:25:57.297 Sample Project[22130:707] idString == nil
2011-09-12 07:25:57.298 Sample Project[22130:707] idString == NULL
2011-09-12 07:25:57.299 Sample Project[22130:707] idString == (id)0
- 1. オブジェクト型のidからクラスへの動的型キャスト
- 2. 動的タイピング言語のドキュメント
- 3. RMLドキュメントの動的スタイル
- 4. 動的ドキュメントの参照
- 5. d3(データ駆動型ドキュメント)の変更
- 6. 動的docxドキュメントを生成
- 7. 動的な型
- 8. 動的データ型
- 9. MarkLogicのドキュメントID列
- 10. Flask-mongoengineのドキュメントID
- 11. DocumentDBドキュメントID
- 12. 動的div IDの使い方ID
- 13. jQuery動的id rearange
- 14. Automapper - 動的型マッピング
- 15. 角型動的テンプレート
- 16. JAVA動的リスト型
- 17. JQuery動的IDコントロールのプロパティ
- 18. のIDが動的ここ
- 19. 動的グリッドビューローのnamingContainer ID
- 20. .aspx.csの動的テキストボックスID
- 21. ウェブサイトのターゲット動的ID
- 22. Groovyの動的型のタイプ
- 23. ドキュメントのhrefリンクを自動的にクリック
- 24. 静的idの動的価格Workcube - Coldfusion
- 25. WPFの動的データ型
- 26. 動的型インスタンスの作成
- 27. Cの動的型入力
- 28. Nhibernate検索ドキュメントID
- 29. 一般的な型 - エンティティフレームワークの動的テーブル
- 30. Django-openauth-idのドキュメントとインストールガイド
を 'id'だけ*のようなものですパスのワイルドカードで指定します。 id –
ZhangChn
シングルトンオブジェクトNSNullは、そのオブジェクトがいつ使われるのですか?ありがとうございました。 –
Appleから直接入手しました: "NSNullクラスは、nilが値として(通常は配列や辞書などのコレクションオブジェクト内で)禁止されている状況でnull値を表すために使用するシングルトンオブジェクトを定義します。 –