2012-11-22 4 views
0

제출할 준비가 된 게임이 있습니다. 나는 그것을 많이 테스트했고 단단한 것 같습니다. 충돌이나 예기치 않은 동작이 없었습니다. 나는 (책에서 샘플을 따라 한 곳을 제외하고) 메인 쓰레드에서 어떤 것을 실행하도록 강요하지 않고있다. 그리고 나는 이제 어떤 상황에서, 다른 누군가의 디바이스에서, 게임이 올바르게 작동하지 않거나 충돌하기 때문에 걱정한다. 나는 주 스레드에 있어야하는 주 스레드에서 뭔가를하지 않을거야. 하지만 주 스레드에서 실행해야 할 것을 이해하지 못합니다. 나는 체크리스트 또는 어떤 방법이 주 스레드에서 실행될 필요가 있는지에 대한 요약을 봤는데 유용한 것을 찾지 못했습니다. 이게 내가 걱정할 필요가있는거야? 이 앱은 iOS 5.1 이상을 대상으로하며 인앱 구매 및 게임 센터를 사용합니다. 나는 cocos2d 프레임 워크와 UIKit을 많이 사용한다. 주 스레드에서 실행iOS에서는 메인 스레드에서 뭔가를 실행해야합니까?

+0

첫 번째 질문은 다음과 같습니다. 백그라운드 스레드에서 언제 실행합니까? 백그라운드 스레드에서 아무 것도 실행하지 않으면 모든 것이 메인 스레드에서 실행됩니다. –

+0

이 질문을 게시 한 직후 "iOS 응용 프로그램에서 스레드 안전성에 대해 걱정할 필요가 언제 있습니까?"라는 질문을 발견했습니다. "동시성 프로그래밍 안내서"에 대한 참조를 포함하여 좋은 답변이 있습니다. – RobertL

+0

일반적으로 UI 라이브러리 코드 호출은 주 스레드에 있어야합니다. 실제로, 대부분의 코드는 특별히 백그라운드 스레드에 있어야하는 경우가 아니면 주 스레드에 있습니다. 실제로 백그라운드 스레드에서 무엇인가를 실행하고 있습니까? 그렇지 않다면 걱정할 것이 없습니다. – Minthos

답변

1

대부분의 방법은

당신이 정렬 HTTP 요청, 데이터베이스 또는 데이터처럼 오래 걸릴 수 있습니다 프로세스에 대해 다시 스레드, 또는 다른 프로세스를 사용하려면, 특히 UI, 괜찮 처리 중에 사용자 경험을 일시 중지 할 수 있습니다.

당신이 충돌을 초래할 수있는 메모리 경고를 생성 할 수있는 개체를 많이로드하는 경우

그래서 당신이 아닌 필요한 객체를 해제하면 메모리 자료를 얻을 수있을 때.

행운을 빌어 요

관련 문제