2010-07-20 5 views
2

나는 아이폰 에 대한 목표 C에 대한 경고를 가지고있다 "함수의 암시 적 선언 'sleep'"객관적인 C SDK 4.0에서 수면을 수정하는 방법?

내가 가진 모든 것은 잠 (1)이다; 아래 applicationDidFinishLaunching의 시작에 대한

내가 아는

그냥 경고 인 SDK의 이전 버전에서이 문제가 발생하지 않았지만, 나는 100 % 성공

을 가지고 있지에 대해 사과하기 전에 문제가 있었다 모두를위한

감사합니다 : D 것은

답변

10

올바른 헤더가 포함되어 있는지 확인하십시오. <Foundation/Foundation.h>에는 Obj-C 코드가 없으면 필요한 모든 것이 있습니다. <unistd.h>을 포함하면 모든 것이 행복합니다.

-5

당신은 그냥 파일의 프로토 타입의 선언 할 수있다 곳에 당신이 그것을 사용하는 :

unsigned int sleep(unsigned int seconds); 

또는 단순히 포함 <unistd.h>

+4

프로토 타입을 선언해야한다면 헤더가 누락됩니다. 이것은 반창고입니다. –

+6

함수를 사용하려면 프로토 타입을 선언하지 않아야합니다. 기껏해야, 올바른 헤더를 포함시키지 않았 음을 의미합니다. 최악의 경우, 충돌 또는 거부를 유발할 수있는 개인 인터페이스의 사용을 나타냅니다. 또는 프로토 타입이 잘못되었을 때 버그를 도입하는 좋은 방법입니다. – bbum

+0

크래시가 안된다, 잘 동작한다.) 어떤 식 으로든 고마워한다. – Saikios

8

방법 대신

[NSThread sleepForTimeInterval:0.1]; 

또는 무언가를 사용하는 방법에 대한?

1

왜 자고 있습니까? 그것은 최악의 가능한 곳입니다. 응용 프로그램이 applicationDidFinishLaunching에서 반환하지 않으면 해당 응용 프로그램이 종료됩니다. 그리고 당신은 그 걸릴 두 번째 오래 걸릴 수 있습니다!

대신, applicationDidFinishLaunching에서 동일한 이미지를 넣은 다음 지연 후이를 닫습니다. 그러면 스플래시 화면이 계속 표시 되어도 응용 프로그램을 계속 초기화 할 수 있습니다. ...

+0

매뉴얼에 있었다. – Saikios

1

다음은 문제를 해결하는 방법입니다.

당신이있는 경우 : 당신이 정말로 당신의 응용 프로그램을 사용하여에 받고 대신 광고를 보는 사용자를 강제해야하는 경우

// sleep(1); 

sleep(1); 

변화가있는 무슨이다 그들은 정말로하고 싶고 스플래시 화면을 표시 한 다음 NSTimer 이벤트를 사용하여 제거합니다. 즉, 유용한 정보를 얻을 수 있습니다.