2014-08-31 4 views
1

다음 줄은 에뮬레이터에서 완벽하게 작동하지만 실제 장치에서는 작동하지 않습니다. 나는에 넣어 않는 한에서 오류가 발생, fatal error: unexpectedly found nil while unwrapping an Optional value장치에서 언 래핑 중 sendSynchronousRequest 오류가 에뮬레이터에서 작동합니다.

var urlData:NSData = NSURLConnection.sendSynchronousRequest(request, returningResponse:&response, error:&error)! 

다른 프로젝트의 원본 끝에 !을 가지고 있지 않았고, 지금 beta6에서, beta5에서 100 % 일 : 그것은 나에게 오류를 제공합니다. 여전히 에뮬레이터에서는 작동하지만 iPhone에서는 작동하지 않습니까?

아이디어가 있으십니까?

답변

1

기기에서 실행할 때 (연결되는 URL/IP 등) 앱에 이상이 있어야한다고 생각합니다.

오류가 발생하면 sendSynchronousRequest은 nil을 반환합니다. 내 조언하는 것입니다

  • urlData 옵션 var urlData: NSData? = ... 확인하고 값이나 서버가 연결중인 것을하지
  • 체크가있는 경우 나중에 확인 및/또는 요청의 매개 변수가 올바른지

null 일 수있는 값에 대해 강제 unwrap을 사용하지 않는 것이 매우 중요합니다. 항상 런타임 오류가 발생하므로 나쁜 실행이라고 생각합니다. 선택적 랩핑을 사용하지 않고 명시 적으로 체크 한 경우와 같이 값에 옵션이 100 % 확실한 경우로 강제 랩 해제를 제한해야합니다.

서버/요청 확인은 시뮬레이터에서 실행 중일 때 로컬 개발 서버에 요청하고 장치를 사용할 때 프로덕션 또는 스테이징 원격 서버에 요청합니다. 어쩌면 당신은 당신의 코드에서 비슷한 것을하고있을 것입니다.

+0

이렇게했습니다. 감사! 그것은 아직도 나에게 아무것도주지 않고 있었다, 그렇지만 나는 그 것이었다라고 알았다!!는 끝나고 있었다. –