Question

J'ai créé une variable d'accéléromètre:

UIAccelerometer   *objAccelerometer;

que j'associais à l'instance sharedAccelerometer:

objAccelerometer = [UIAccelerometer sharedAccelerometer];
objAccelerometer.delegate = self;

Quand je libère ce point de vue (pour charger une autre vue), l'instance de l'accéléromètre fait que le programme de mourir. (Si je l'ai commenté, je peux basculer entre les vues sans problème).

J'ai eu un problème similaire avec un NSTimer, mais une fois que j'ai appelé:

[myTimer invalidate];

(avant la libération et la commutation des vues) tout a bien fonctionné.

Comment dois-je libérer correctement le délégué ou deallocate ou libérer l'accéléromètre?

Était-ce utile?

La solution

Vous ne relâchez pas l'accéléromètre partagé - vous ne le retenaient (et ne devrait pas) - il est un singleton

.

L'accéléromètre a une référence à votre objet. Pour pouvoir le dégager, il est situé juste à déléguer la propriété à zéro (parce que c'est une propriété qu'elle publiera sa référence à votre objet).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top