CUSTOM_VIEW CLASSE:correctement gérer la file d'attente d'expédition pour réduire le chauffage de téléphone iOS
J'ai fait custom_view classe qui calcule la valeur sur elle-même et montre à l'utilisateur après chaque 1 sec. Calcul des valeurs dans custom_view en fonction des propriétés/variables stockées dans l'instance custom_view.
viewController CLASSE:
J'afficher une 7 à 9 vue de la création en instance de custom_class en classe viewController.
Comme mon custom_class affiche une nouvelle valeur calculée toutes les 1 s, j'ai utilisé dispatch_async pour exécuter le code de calcul. Pour que cela n'affecte pas le thread UI.
custom_view.m
static dispatch_queue_t queue;
queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND,0);
dispatch_async(queue, ^(void)
{
[self calculateViewValue];
});
-(void) calculateViewValue
{
int wait = [self generateRandomNumberWithlowerBound:10 upperBound:20];
for (int i = 0; i<= wait; i++)
{
// value calculation
[[NSOperationQueue mainQueue] addOperationWithBlock:^
{custom_view_instance.text = value;}];
sleep(1);
}
}
Cependant, après son exécution iPhone chauffe après un certain temps !! Suis-je faire quelque chose de mal/manquant/meilleure façon de le faire ???
Salut @ingconti, merci pour la réponse :) Eh bien, comme vous l'avez mentionné, je suis d'accord avec votre que le calcul soit fait dans le contrôleur, Cependant les calculs sont faits valeur stockée dans ma classe custom_view. Par exemple. Considérons que custom_view représente PROPERTY [HOUSE/BUILDING] et value sur custom_view est RATE de la propriété. donc sa valeur est basée sur les propriétés/variables de custom_view. Par conséquent, je crée toujours une instance de custom_view et initialise chaque nouvelle custom_view avec la valeur. –
Les vues ne doivent pas contenir de données ni effectuer de calculs. Les données doivent figurer dans le modèle et les calculs quelque part dans la couche de modèle ou de contrôle (en fonction des détails de mise en œuvre). – bbum
ok @bbum, oui je préfère ne pas utiliser la vue pour le calcul/stockage des données que je fais faire cette fois-ci et apportera des changements comme vous l'avez souligné. Merci :) Im étant débutant, que dois-je référer/apprendre à éviter de faire une telle erreur que vous avez souligné et faire une mise en œuvre plus structurée à l'avenir. –