J'ai une application qui a beaucoup de vues (en utilisant le contrôleur de barre d'onglets). Je souhaite créer des requêtes HTTP asynchrones simultanées, indépendamment de la vue actuelle que l'utilisateur consulte. Quand une demande http est répondue, je veux mettre à jour l'interface utilisateur, puis demander à nouveau. Si j'écris le code dans une sous-classe UIViewController, tout fonctionne correctement. Où puis-je écrire mon code pour pouvoir travailler, sans savoir quel onglet est affiché par l'utilisateur? Je voudrais éviter d'utiliser des discussions. Est-ce possible?Requêtes HTTP asynchrones multiples en arrière-plan iPhone
J'ai créé un service web qui prend des requêtes http et répond quand il a quelque chose de nouveau. Alors, je demande la nouvelle information puis je rouvre la fenêtre pour que le webservice me parle. De cette façon, je fais une connexion "persistante".
Enfin, je voudrais savoir, quelle est la meilleure façon d'informer mon modèle pour les changements qui seront apportés à celui-ci. NSNotification? Délégation?
MISE À JOUR
Le code ci-dessous ne reçoit aucune réponse. Il reçoit BAD_ACCESS et il se bloque.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
// Request Data
ConnectionHandler *connectionHandler = [[ConnectionHandler alloc] init];
[connectionHandler requestSO];
[connectionHandler requestSopen];
// Make Root View Controller
MainViewController *mainViewcontroller = [[MainViewController alloc] initWithNibName:@"MainViewController" bundle:nil];
[self.window setRootViewController:mainViewcontroller];
//
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
}
Pourquoi est-il mauvais d'éviter les threads? –
L'exécution de vos demandes dans un thread d'arrière-plan distinct (hors du thread principal) permet de maintenir l'interface utilisateur de votre application sensible. Si votre interface utilisateur ne répond pas du fait de l'exécution de tous les processus sur le thread principal, votre application risque d'être détruite par le système d'exploitation, et au moins vos utilisateurs l'évalueront très mal. Voir http://www.raywenderlich.com/4295/multithreading-and-grand-central-dispatch-on-ios-for-beginners-tutorial – ader