Objective-C nil, NİL, null arasındaki fark
nil
, NIL
null
arasındaki farkı bilmek istiyorum.
Google'da etrafında ve bunu buldum:
nil
->Objective-C nesne null işaretçi
NIL
->Objective-C sınıfı null işaretçi
null
->null ilkel türü veya veri olmaması için işaretçi
Ama şartlar "Objective-C" ve "sınıf" açıkça. nesneyi anlamak mümkün değil ben
Bana bunu açıkla lütfen. Ayrıca, Objective-C NSNull
NSNil
gibi herhangi bir kelime var mı? Eğer öyleyse, o zaman ne olduğunu açıkla lütfen.
CEVAP
nil
Objective-C nesneleri için null edebi değeri, soyut tip id
veya Objective-C herhangi bir tür @interface
ilan ile ilgili. Örneğin:
NSString *someString = nil;
NSURL *someURL = nil;
id someObject = nil;
if (anotherObject == nil) // do something
Nil
Objective-C sınıfları için değişmez null değer türü Class
denk düşer. Birçok kod referans sınıflar için değişkenleri gerekmez beri, kullanımı yaygın değildir. Bir örnek:
Class someClass = Nil;
Class anotherClass = [NSString class];
NULL
keyfi C işaretçileri için değişmez null değerdir. Örneğin,
int *pointerToInt = NULL;
char *pointerToChar = NULL;
struct TreeNode *rootNode = NULL;
NSNull
null temsil eden nesneler için bir sınıftır. Aslında, yalnızca bir nesne, yani bir [NSNull null]
tarafından döndürülen var. nil
edebi bir null değer olduğundan nil
farklıdır, yani, bir nesne değil. Diğer yandan NSNull
, tek örneği uygun bir nesnedir.
NSNull
sık sık edemezler nil
değerleri saklamak Vakfı koleksiyonları kullanılır. Sözlükler nil
verilen anahtar sözlükte karşılık gelen nesne olduğunu belirtmek için verir durumda, yani, anahtar sözlüğe eklenmemiş. Belirli bir anahtar olduğunu açıkça yapmak istiyorum ama bir değeri yok, [NSNull null]
kullanabilirsiniz.
Örneğin, aşağıdaki nil
depolayamaz değerleri sözlükler, çünkü bir özel durum atar:
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
[dict setObject:nil forKey:@"someKey"];
Diğer taraftan, aşağıdaki kodu [NSNull null]
sigaranil
bir nesne olduğu için geçerlidir:
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
[dict setObject:[NSNull null] forKey:@"someKey"];
Listedeki öğelerin sayısını belirtmek zorunda kalmadan Vakfı koleksiyonları nesnelerin listesini sonu için bir belirteç olarak nil
kullanan initialisers olduğunu belirtmekte yarar var. Bu sadece nil
Vakıf koleksiyonunda saklanan olamaz, çünkü olabilir. Örneğin,
NSArray *array = [NSArray arrayWithObjects:@"one", @"two", nil];
NIL
NSNil
, Objective-C veya Apple Foundation diye bir şey yok.
Ne'is_null ($) var ve (=== null$v...
Arasındaki fark null ve empty (&;"...
Objective-C veraset ve Kategoriler ara...
Arasındaki fark==[0]C=='\0' ...
Objective-C: kimlik ve void *arasındak...