Objective-C nil, NİL, null arasındaki fark
nil, NIL nullarası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.

Objective-C: kimlik ve void *arasındak...
Arasındaki fark NULL, '\0' v...
Ne'is_null ($) var ve (=== null$v...
Arasındaki fark null ve empty (&;"...
Objective-C veraset ve Kategoriler ara...