02 - 자주 발생하는 버그 2개
2224 단어 bug
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 등.정기적으로 각종 복지를 드리지 않습니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
useState 버그 파트 I: 예기치 않은 상태 업데이트.이 질문을 명심하십시오. 이 useState 버그 시리즈 파트에서는 useState의 가장 일반적인 문제와 해결 방법에 대해 이야기하겠습니다. 이 작은 앱의 예를 들어 보겠습니다. 이것은 우리가 시연을 위해 사용할 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.