2017-02-03 5 views
0

일부 외부 변수가 Global.h 헤더에 정의되어 있고 일부 뷰에 포함되어 일부 작은 데이터를 쉽게 처리 할 수 ​​있습니다.extern float는 이전 값을 유지합니다. applicationwillenterforeground

applicationWillEnterForeground이 앱을 실행하기 시작한 후 앱이없는 동안 변경되었을 수있는 일부 API 데이터를 업데이트하라는 메시지를 NSURLConnection에 묻는 기능을 설정했습니다. 그런 다음 일부 바르를 업데이트합니다. 이 모든

AppDelegate에

에서 일어나는

은 내가 알림이 메서드가 호출하지만, VAR는 이전 값을 가지고있다, 작동 MainController.m이 VAR를 표시하는 라벨을 업데이트하기 NSNotificationCenter를 호출합니다.

이상한 점은 ViewController에서 var가 업데이트되었지만 (디버거를 사용하고 단계별로 이동하면서 볼 수 있음) 여전히 기존 값을 가지고 있으며 계산이 엉망입니다.

var가 MainController.m에서 전혀 선언되지 않았으므로 로컬 인스턴스가 아닙니다.

앱이 백그라운드로 돌아 가지 않으면 위로 올라간다. 예상대로 모든 것이 작동하고있어, MainController의 저장된 인스턴스에있는 것이 문제의 원인이된다.

그것에 대한 아이디어가 있습니까?

+0

'NSURLSession'과'beginBackgroundTask'를 사용하십시오. –

답변

0

좋아, 어리 석음이 다시 방문됩니다.

실제로 전역 변수가 MainController에서 이전 값으로 유지되도록 AppDelegate에서 var를 선언했습니다. AppDelegate.h 및 AppDelegate.m에서 참조를 제거한 후 정상적으로 작동했습니다.