5

私は比較的経験豊富な iOS 開発者ですが、パフォーマンスと使用に関して、Nil (大文字) と nil (小文字) と NULL (存在する場合) の違いは何ですか? 私はそれらの間に違いがあることを絶対に確信しています。さもなければ、そもそもなぜそれらが別々に定義されるのでしょうか...

4

1 に答える 1

15

基本的な考え方は、C ポインタには NULL (C プリミティブには 0)、Objective C インスタンスには nil、Objective C クラスには Nil を使用し、NSNullは何もないふりをして何もないインスタンスを格納できるようにするというものです。配列または辞書で。

これに関する優れた説明と、以下にリストされている値のソースは、http: //nshipster.com/nil/にあります。

NULL (void *)0 C ポインターのリテラル NULL 値

nil (id)0 Objective-C オブジェクトのリテラル null 値

Nil (Class)0 Objective-C クラスのリテラル null 値

NSNull [NSNull null] null を表すために使用されるシングルトン オブジェクト

于 2013-09-01T03:11:16.057 に答える