그래서 그런가 버그가 종종 발견된다.
이번에 발견된 버그는 CGSize에 잘못된 값이 들어가는 현상!!
아이팟 2세대에서 확인해보니 유동적인 UI프레임이 엉망진창으로 배열되고 있었다.
이 현상은 release/debug 모드가 아니라 appsotre 로 build 했을 때 발생했는데
사람들은 컴파일러의 버그가 아닌가 예상하고 있다.
그래서 임시방편으론 CGSize 변수를 한번 더 재정의 한것
sizeOfCell = CGSizeMake(sizeOfCell.width, sizeOfCell.height);
이 현상은 CGPoint에서도 발생한다고 한다.
armv6를 지원하는 앱을 개발중이라면 고려해야할 부분이리라.
>> Other C flags 에 -mno-thumb 을 주면 된다는데 맞낭?
+설명
xcode4.2에서는 armv6를 지원하지 않으므로 빌드 셋팅에서 아키텍처에서 armv6를 추가해주면
왠만한건 잘 돌아가는데 앞에서 언급한 math관련 클래스들에서 문제가 발생.
LLVM compiler 3.0의 최적화 작업에서 문제가 생기는 것으로 추정.
LLVM compiler 3.0의 최적화 작업을 꺼 주는 옵션이 -mno-thumb
빌드 셋팅에서 Other C flags 항목에 이 옵션을 추가해주면 잘 돌아간단다.
(잘 안되면 clean을 한번 해주는 것이 ㅋㅋ)
아 구글링의 힘!! ㅋㅋ
옵션을 줘도 되지만 그림과 같이 optimization level 단에서 debug/release/appstore을 분기 처리하면 더 안정된 서비스를 제공할 수 있을 듯.
armv6를 추가 하면 아래 그림과는 좀 다르게 바뀌는데 armv6냐 armv7이냐에 따라 optimization을 사용할지 none을 할지 설정하면 됨. 아 뭔가 오늘 아무것도 안한건 아니라서 좋구나 - 뭐... 결국은 과장님이 찾아내신거지만... 하나 건졌으니 좋아좋아!!