2012-02-08 14 views
13

Ben Boş nesne ben yineleme gerekir miNSMutableArray öğesinden [NSNull Null] nesnelerini nasıl kaldırabilirim?

[mutArrSkills addObject:[NSNull null]]; 

tarafından eklenen kaldırmak gerekir? NSMutableArray'ın tüm boş değerlerini kaldıracak bir işlev var mı?

Yinelemeye ihtiyacınız varsa, bunu nasıl yapacağım?

[mutArrSkills removeObjectIdenticalTo:[NSNull null]]; 

şöyle

+1

removeObjectIdenticalTo Ayrıca diziyi kaldıracaktır, bu yüzden neden kendi kendinize itiraz etmiyorsunuz. –

cevap

30

Sen boş değerleri kaldırmak için, NSMutableArray 'ın removeObjectIdenticalTo: yöntemi kullanabilirsiniz. Yinelemeye gerek yok.

+0

Emin olduğuna emin misin? Nesne adresleri aynı ise Nesneler aynı kabul edilir çünkü değilim. Bilmeniz gerekenler, '[NSNull null]! = [NSNull null]' ... – Nekto

+0

Evet, bu konuyla ilgili olarak, [mutArrSkills addObject: [NSNull null]]; bu çağrıyla kaldırıldı. – Ilanchezhian

+0

Evet, iyi çalışıyor. – Heena

1

removeObjectIdenticalTo:

dizideki belirli bir nesnenin tüm oluşumları kaldırır. eşleşmeleri bulmak için yöntem ve ardından removeObjectAtIndex kullanarak onları kaldırır :.:

Tartışma Bu yöntem indexOfObjectIdenticalTo kullanır Böylece eşleşmeler nesne adresleri kullanılarak belirlenir. Dizi birObject içermiyorsa, yöntemin hiçbir etkisi yoktur (içeriğin aranmasıyla başa çıkılmasına rağmen).

+0

Emin olduğuna emin misin? Nesne adresleri aynı ise Nesneler aynı kabul edilir çünkü değilim. Bilmeniz gerekenler, '[NSNull null]! = [NSNull null]' ... – Nekto

+0

@Nekto pls cevabımı aşağıya bakınız. – sElanthiraiyan

-1

Bunun gibi yinelenebilir. Bunu yaparken deneyebilirsiniz

for(int i=0,i<[mutArrSkills count]; i++) 
{ 
    if([[mutArrSkills objectAtIndex:i] isKindOfClass:[NSNull Class]]) 
    { 
    [mutArrSkills removeObjectAtIndex:i]; 
    } 
} 
+2

Dizide iki ardışık NSNull nesneye sahipseniz bu hiç işe yaramıyor. – gnasher729

1

,

NSNull *nullValue = [NSNull null]; 

[mutArrSkills removeObjectIdenticalTo:nullValue]; 

umarım bu yardımcı olur.

İlgili konular