02 - 자주 발생하는 버그 2개

2224 단어 bug
iOS 개발에서 자주 발생하는 두 가지 문제 처리
2015-05-16 iOS 개발
(1) "Unknown class XXViewController in Interface Builder file."문제 처리
 
최근 정적 라이브러리에 XXViewController 클래스를 쓴 다음 주 프로젝트의 xib에서 xib의 클래스를 XXViewController로 지정하면 프로그램이 실행될 때 다음과 같은 오류가 발생합니다.
 
1 Unknown class XXViewController  in   Interface Builder file.
 
이전에도 이 문제에 부딪혔지만 기억이 잘 나지 않아 Stackoverflow에서 답을 찾기 시작했다.
 
사실 이 문제는 Interface Builder와 무관합니다. 가장 직접적인 원인은 관련 symbol이 정적 라이브러리에서 불러오지 않았기 때문입니다.이런 문제의 처리는 Target의 "Build Setting"– > "Other Link Flags"에 "-all"load-ObjC"라는 두 개의 표지 위치를 표시하면 OK입니다.
 
(2) Unbalanced calls to begin/end appearance transitions for... 문제 처리
 
우리의 어떤 업무는 이러한 수요가 있는데, 목록에 들어간 후, 즉각적으로push의 웹 페이지를 만들어서, 활동의 홍보를 해야 한다.iOS 8에서 우리의 실현은 모든 OK이다.그러나 iOS 7에 이르러 이 웹 페이지push가 나오지 않는 것을 발견했고 컨트롤러에서 경고 메시지를 보냈다. 즉, 다음과 같다.
 
1 Unbalanced calls to begin/end appearance transitions  for   ...
 
이 경우 내비게이션 표시줄의 되돌아오기 단추를 누르면 검은색 화면이 바로 표시됩니다.
 
Stackoverflow에 가서 살펴보니 다음과 같은 힌트가 있었다.
 
1 occurs when you  try   and display a  new   viewcontroller before the current view controller is finished displaying.
 
현재 보기 컨트롤러가 디스플레이를 완성하기 전에 새로운 보기 컨트롤러를 표시하려고 시도한다는 뜻이다.
 
그래서 우리는 코드를 조사했는데 역시viewDidLoad에서 인터넷 요청 조작을 했고 요청이 돌아오면push라는 웹 이벤트 홍보 페이지로 가는 것을 발견했다.현재 보기 컨트롤러가 완료되지 않았을 수도 있습니다. (즉push 작업이 완료되지 않았을 수도 있습니다.)
 
1 Basically you are trying to push two view controllers onto the stack at almost the same time.
 
거의 두 개의 보기 컨트롤러push를 현재 내비게이션 컨트롤러 창고에 동시에 넣거나 두 개의 다른 보기 컨트롤러를 동시에 팝하면 불확실한 결과가 나타날 수 있습니다.그래서 우리는 같은 시간에 같은 네비게이션 컨트롤러 창고에 하나의 조작만 할 수 있도록 확보해야 한다. 설령 현재의 보기 컨트롤러가 애니메이션을 하고 있더라도push나 pop의 새로운 보기 컨트롤러에 가지 말아야 한다.
 
그래서 마지막으로 우리는 웹 활동의 데이터 요청을viewDid Appear에 넣고 처리를 해서 문제를 해결했다.
 
유인원 서클(ID: CodePush)(← 길게 눌러 복제)
프로그래머에게 최고의 박문, 최고의 토론, 가장 실용적인 개발 자원을 제공한다.최신 프로그래밍 학습 자료 제공: PHP, Objective-C, 자바, Swift, C/C++ 함수 라이브러리,NET Framework 라이브러리, J2SE API 등.정기적으로 각종 복지를 드리지 않습니다.

좋은 웹페이지 즐겨찾기