1

푸시 알림을 받으려면 장치 데이터를 서버에 등록하십시오. 여기 코드는 누군가가 문제를 해결하는 데 도움 주실APNS : 오류 도메인 = NSCocoaErrorDomain 코드 = 3840

Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)" (JSON text did not start with array or object and option to allow fragments not set.) UserInfo=0x17057f60 {NSDebugDescription=JSON text did not start with array or object and option to allow fragments not set.} 

로,

[NSURLConnection sendAsynchronousRequest: request 
              queue: _postQueue 
           completionHandler: ^(NSURLResponse *response, NSData *responseData, NSError *connectionError) { 
            if (connectionError) { 
             // 
            } else { 
             NSError *error = nil; 
     NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData: responseData options: NSJSONReadingMutableContainers error: &error]; 
            } 
           }]; 

임 점점 오류 간다?

답변

3

오류 메시지는 정확한 원인을 알려주고 있습니다. 서버의 응답에 유효한 JSON이 포함되어 있지 않습니다. 기술적으로 JSON은 배열이나 객체 (사전)로 시작해야합니다. 서버가 반환하는 것은 무엇이든간에 아닙니다. NSJSONReadingAllowFragments 옵션을 사용하여 JSON을 소비하지 않고 강제로 사용할 수 있습니다.

해당 옵션을 사용한 후 사용자가 인 경우 오류가 발생하면 서버가 잘못된 형식의 JSON (또는 전혀 JSON 없음)을 반환 할 가능성이 있습니다. 다시 보낸 메일을보기 위해 서버의 로그를 살펴 보시지 않겠습니까?

+0

감사합니다. 하지만 NSJSONReadingAllowFragments 옵션을 사용할 때 오류가 발생했습니다. Error Domain = NSCocoaErrorDomain Code = 3840 "작업을 완료 할 수 없습니다 (코코아 오류 3840)."(문자 0 주변의 값이 잘못되었습니다.) UserInfo = 0x1473bee0 {NSDebugDescription = 값이 잘못되었습니다. 문자 0} – rishu1992

+0

그래서 서버가 JSON을 반환하지 않거나 잘못된 JSON을 완전히 반환하지 않습니다. NSData를 문자열로 출력하여 반환되는 내용을 확인하십시오. – lxt

+0

감사합니다! 당신이 올바른지 . 서버는 app을 통해 보낸 매개 변수 외에 별도의 매개 변수를 확인하고있었습니다. 매개 변수 중 일부는 0입니다. 이러한 매개 변수가 없어서이 문제가 발생했습니다. – rishu1992