2010-07-20 4 views
2

J'ai un avertissement sur c objectif pour l'iphone il dit « déclaration implicite de la fonction« sommeil »Comment réparer le sommeil sur l'objectif C sdk 4.0?

Tout ce que j'ai est un sommeil (1); pour les éclaboussures dans le applicationDidFinishLaunching

Je n'ai pas eu ce problème dans les versions antérieures du sdk

Je sais juste un avertissement, mais j'ai eu des problèmes avant avec Apple pour ne pas avoir de succès à 100%

Merci pour tout: D

Répondre

10

Assurez-vous d'inclure les bons en-têtes. <Foundation/Foundation.h> a tout ce dont vous avez besoin, si vous n'êtes pas dans le code Obj-C, incluez <unistd.h> et tout devrait être heureux.

-5

vous pouvez simplement déclarer qu'il est un prototype dans le dossier où vous l'utilisez:

unsigned int sleep(unsigned int seconds); 

Ou tout simplement include <unistd.h>

+4

s'il doit déclarer le prototype, il lui manque un en-tête. Ceci est un pansement. –

+6

Vous ne devez * jamais * déclarer un prototype pour activer l'utilisation de la fonction. Au mieux, cela signifie que vous n'avez pas inclus le bon en-tête. Au pire, il indique l'utilisation d'interfaces privées pouvant provoquer des plantages ou des rejets. Ou c'est un bon moyen d'introduire un bug si le prototype est défectueux. – bbum

+0

il ne tombe pas en panne, ça marche bien;) merci de toute façon – Saikios

8

Comment l'utilisation

[NSThread sleepForTimeInterval:0.1]; 

ou quelque chose à la place?

1

Pourquoi dormez-vous? C'est le pire endroit où dormir; Si votre application ne retourne pas depuis applicationDidFinishLaunching, elle sera détruite. Et vous faites cela prendre une seconde de plus !!

Au lieu de cela, dans l'applicationDidFinishLaunching mettre en place la même image, puis le rejeter après un délai. De cette façon, votre application peut continuer à s'initialiser même si l'écran de démarrage est toujours affiché ...

+0

Il était sur un manuel :( – Saikios

1

Voici comment résoudre votre problème.

Si vous avez:

sleep(1); 

changement à

// sleep(1); 

Si vous avez vraiment devez forcer l'utilisateur à regarder votre publicité au lieu d'obtenir avec l'aide de votre application, ce qui est ils veulent vraiment faire, afficher votre écran de démarrage, puis utiliser un événement NSTimer pour le supprimer. Cela signifie que vous pouvez faire des choses utiles pendant qu'il est là.