2016-10-18 4 views
0

Json이 PHP 파일에 대한 데이터를 가져 오는 로그인 페이지를 만들려고합니다. 이 문장 [jsonData objectForKey : @ "state"]을 사용할 때까지 작동하지만 예외가 나타납니다. 나는 이전에 질문에 대한 답변과 같은 또 다른 dictonary를 만들려고 노력했다. 하지만 아무것도 나와 함께 일하고 있지 않습니다.[__NSArrayM objectForKey :] : 인식 할 수없는 선택기가 인스턴스로 전송 됨 0x7faf59e2fd10

- (IBAction)login:(id)sender { 
    @try { 

     NSString *post =[[NSString alloc] initWithFormat:@"email=%@&password=%@",[firsttext text],[second text]]; 
     NSLog(@"PostData: %@",post); 

     NSURL *url=[NSURL URLWithString:@"http://itsolution.co.in/coverageapi/login.php"]; 

     NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; 

     NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]]; 

     NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; 
     [request setURL:url]; 
     [request setHTTPMethod:@"POST"]; 
     [request setValue:postLength forHTTPHeaderField:@"Content-Length"]; 
     [request setValue:@"application/json" forHTTPHeaderField:@"Accept"]; 
     [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; 
     [request setHTTPBody:postData]; 

     [NSURLRequest setAllowsAnyHTTPSCertificate:YES forHost:[url host]]; 

     NSError *error = nil; 
     NSHTTPURLResponse *response = nil; 
     NSData *urlData=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; 

     NSLog(@"Response code: %d", [response statusCode]); 
     if ([response statusCode] >=200 && [response statusCode] <300) 
     { 
      NSString *responseData = [[NSString alloc]initWithData:urlData encoding:NSUTF8StringEncoding]; 
      NSLog(@"Response ==> %@", responseData); 
      SBJsonParser *jsonParser = [SBJsonParser new]; 
      NSDictionary *jsonData = (NSDictionary *) [jsonParser objectWithString:responseData error:nil]; 
      NSLog(@"jsondata %@",jsonData); 
      NSInteger success = [(NSNumber *) [jsonData objectForKey:@"success"] integerValue]; 
      NSLog(@"%d",success); 
      if(success == 1) 
      { 
       NSLog(@"Login SUCCESS"); 
      } else { 
       NSLog(@"failed"); 
      } 

     } else { 
      if (error) NSLog(@"Error: %@", error); 
     } 

    } 
    @catch (NSException * e) { 
     NSLog(@"Exception: %@", e); 
    } 
    } 
+2

'[__NSArrayM objectForKey는 :] : 인식 할 수없는 selector' 단순히 의미, 수신기 배열은 사전보다는이다 . – vadian

+0

@Dipek 키 "상태"가 응답에 없습니다. –

답변

0

이 하나의 시도 그리고 확인하시기 바랍니다 주 키 존재 여부이다 1

- (void) logIn { 

    ///1 
NSMutableDictionary *responseDic_Lv=[[NSMutableDictionary alloc]init]; 
NSString *post_Lv = [NSString  stringWithFormat:@"email_id=%@&password=%@"  ,userNameTFT1.text,passwordTFT2.text]; 


///2 
NSData *postData_Lv = [post_Lv dataUsingEncoding:NSASCIIStringEncoding  allowLossyConversion:YES]; 
NSString *postLength_Lv = [NSString stringWithFormat:@"%lu",(unsigned  long)[postData_Lv length]]; 

//NSLog(@"Post Length Is... %@",postLength_Lv); 


//3 
NSString *BaseUrl_Login = [NSString stringWithFormat:@"Your_Login_URL"]; 

    NSMutableURLRequest *request_Lv =[[NSMutableURLRequest alloc] init]; 
[request_Lv setURL:[NSURL URLWithString:BaseUrl_Login]]; 

//NSLog(@" Rahul Goku request is >>> %@",request); 

    [request_Lv setHTTPMethod:@"POST"]; //Write Post or Get accordind method here 

    [request_Lv setValue:postLength_Lv forHTTPHeaderField:@"Content-Length"]; 

    [request_Lv setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; 

    [request_Lv setHTTPBody:postData_Lv]; //Set HTTP 

    NSData *response_Lv = [NSURLConnection sendSynchronousRequest:request_Lv 
    returningResponse:nil error:nil]; 

    responseDic_Lv=[NSJSONSerialization JSONObjectWithData:response_Lv options:NSJSONReadingAllowFragments error:nil]; 



///4 Chk Data... 
    NSString *ResultStr1 = (NSString *)[responseDic_Lv valueForKey:@"YourKey"]; 

NSLog(@"Result From Server is=====> %@",ResultStr1); 


if ([ResultStr1 isEqualToString:@"success"]) { 


NSString *ResponseStr2 = (NSString *)[responseDic_Lv valueForKey:@"YourKey"]; 



} else { // Login Error password or email.... Error... 


    } 



} 
관련 문제