2013-03-04 14 views
8

Mam problem podczas wyodrębniania danych z obiektu Dictionary. Liczba słownika jest wyświetlana jako 1, ale jedna wyświetlana wartość ma wartość zerową. Chcę wyświetlić AlertView, gdy nie ma danych w obiekcie Dictionary. Myślałem o wyświetlaniu AlertView, gdy licznik jest "0", ale zwraca "1".NSDictionary z wartością pustą

Wyodrębniam ten obiekt słownika z usługi WebService za pomocą JSON.

{ 
    "My Data" = null; 
} 

Używany ten kod do pobierania wartości "Moje dane" do zmiennej słownikowej Datas.

Datas = (NSDictionary *) [details objectForKey:@"My Data"]; 

if ([Datas count] == 0) { 

//code for showing AlertView.... 

} 

Proszę mi pomóc, aby wyświetlić UIAlertView gdy wartość słownik posiadające zerowy ....

+0

umieścić 'NSLog' dla szczegółów i Daty ... sprawdź, co zwraca .... – Venkat

+0

Witaj Kalyan, możesz dać trochę więcej kodu. Nie rozumiem, co próbujesz osiągnąć ... – JFS

+0

+1 za próbowanie przynajmniej czegoś ... Dlaczego uczciwe pytania zawsze są odrzucane – JFS

Odpowiedz

4
if ([[details objectForKey:@"My Data"] isEqual:[NSNull null]] || [[details objectForKey:@"My Data"] isEqualToString:@""]) { 
    UIAlertView *altTemp = [UIAlertView alloc]initWithTitle:@"Value Null" message:@"Your Message" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; 
    [altTemp show]; 
    [altTemp release]; 
} 
+1

Czy uważasz, że twoja składnia jest poprawna, jeśli stwierdzenie? –

+0

teraz, prawda? @ PatryushaTerli, po prostu piszę odpowiedź, która daje jakiś pomysł, więc pomiń ten punkt, tak, ale thanx :) –

+4

Dlaczego test isEqUal: NULL? Jeśli jest to prawdą, zostanie ocenione jako fałszywe i nie będzie działać dla nsnull –

35

NSDictionary i innych zbiorów nie może zawierać nil wartości. Kiedy NSDictionary musi przechowywać null, zapisywana jest specjalna wartość [NSNull null].

Porównaj wartość z @"My Data" do [NSNull null], aby ustalić, czy odpowiadająca jej wartość to null, czy nie.

// Since [NSNull null] is a singleton, you can use == instead of isEqual 
if ([details objectForKey:@"My Data"] == [NSNull null]) { 
    // Display the alert 
} 
+1

Dobra odpowiedź! dzięki – why

+0

U zaoszczędzić mój dzień! – jithin

6

Zazwyczaj wartości zerowe w JSON się analizowany do NSNull. Tak więc warunek ten powinien sprawdzić to, a także zero: if((details[@"My Data"] == nil) || (details[@"My Data"] == [NSNull null]))

Powiązane problemy