2010-08-26 22 views
0

J'ai un View Controller dans lequel j'ai créé UIwebView dans IB.IBOutlet UIWebView retainCount

IBOutlet UIWebView *webView; 

@property (nonatomic, retain) IBOutlet UIWebView *webView; 

@synthesize webView; 

cette webView a retainCount = 2 dans viewDidLoad. Pourquoi?

Merci

Répondre

1

Je dirais que ce parce qu'il est retenu par votre classe dans la propriété webView et il est retenu par son superview à l'intérieur du tableau subviews.

+0

oui, je pense que vous avez raison, si je change '@property (nonatomic, assign) IBOutlet UIWebView * webView;' retainCount = 1. Quelle est la bonne façon? – Burjua

+0

vous pouvez conserver, de cette façon vous vous assurez que votre webView ne sera pas libérée si, par exemple, vous décidez de le retirer de sa superview pour une raison quelconque. N'oubliez pas de le relâcher à l'endroit approprié (probablement dans 'viewDidUnload', où vous pouvez simplement faire 'self.webView = nil' et le setter le lâchera pour vous). – filipe

+0

Désolé, je ne l'ai pas tout à fait compris, donc je devrais utiliser retenir et mettre self.webView à zéro dans viewDidUnload à droite, En fait, j'ai le même problème que décrit ici: http://stackoverflow.com/questions/2950907/uiwebview -memory-management, Et ne peut pas trouver de solution – Burjua