2013-03-04 3 views
8

사전 개체에서 데이터를 추출 할 때 문제가 있습니다. 사전의 개수는 1로 표시되지만 표시된 값은 null입니다. 사전 개체에 데이터가 없을 때 AlertView를 표시하려고합니다. 나는 카운트가 '0'일 때 AlertView를 표시하려고 생각했지만 '1'을 리턴했다.null 값을 갖는 NSDictionary

JSON을 사용하여 WebService에서이 사전 객체를 추출 중입니다.

{ 
    "My Data" = null; 
} 

"My Data"값을 Dictionary 변수 Datas에 가져 오는 데이 코드를 사용했습니다.

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

if ([Datas count] == 0) { 

//code for showing AlertView.... 

} 

하면 사전 값을 갖는 널 (null) ....

+0

자세한 내용과 날짜는 NSLog를 ... 반환하십시오. 확인하십시오 .... – Venkat

+0

안녕 Kalyan, 조금 더 많은 코드를 제공 할 수 있습니까? 나는 당신이 성취하려고 시도하는 것을 이해하지 못합니다 ... – JFS

+0

+1을 시도해 본 적이 있습니다 ... 왜 정직한 질문이 항상 투표로 내려 가고 있습니까 – JFS

답변

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

if 문에서 구문이 올바른 것 같습니까? –

+0

지금, 그 권리 ?? @ PratyushaTerli 난 그냥 몇 가지 아이디어를주는 대답을 쓰고 그래서 그 지점을 건너 뛰지만 고맙습니다 :) –

+4

왜 isEqUal 테스트 : NULL? 그것이 사실이라면 거짓으로 평가되어 nsnull에 대해 작동하지 않습니다. –

35

NSDictionary 및 기타 컬렉션 nil 값을 포함 할 수없는 경우 나에게 UIAlertView를 표시하도록 도와주세요. NSDictionarynull을 저장해야하는 경우 특수 값 [NSNull null]이 저장됩니다.

@"My Data"에서 [NSNull null]까지의 값을 비교하여 해당 값이 null인지 확인하십시오.

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

좋은 대답입니다! 감사합니다 – why

+0

U 저를 구 해주세요! – jithin

6

일반적으로 JSON의 null 값은 NSNull으로 구문 분석됩니다. 따라서이 조건은 Nil과 마찬가지로 확인해야합니다 : if((details[@"My Data"] == nil) || (details[@"My Data"] == [NSNull null]))

관련 문제