को हटाया नहीं गया है, मैंने Apple docs से AVPlayerDemo नमूना का उपयोग किया और UITableViewController से चुने गए वीडियो चलाने के लिए इसके ऊपर अपना स्वयं का यूआई लिखा। अब, समस्या यह है कि यहां कहीं मेमोरी रिसाव है जिसे मैं नहीं ढूंढ सकता। समस्या यह है कि AVPlayer ऑब्जेक्ट को हटाया नहीं जा रहा है, मैंने अनुमान लगाया है क्योंकि हर बार एक प्रेस बैक बटन और खेलने के लिए एक नया वीडियो चुनते हैं, ऐप द्वारा खपत कुल मेमोरी में एक बड़ी छलांग है जो यहां दिखाया गया है:आईओएस में मेमोरी लीक, एवीप्लेयर को कभी भी
पहली बार वीडियो प्लेयर है, स्मृति उपयोग 36.6MB, दूसरी बार के लिए अब:
यहाँ यह 58.2MB पर पहुंच गई है और प्रत्येक बढ़ाने पर रहता है समय मैं वापस जाता हूं और फिर वीडियो चलाता हूं या एक अलग वीडियो चलाता हूं।
मैं लीक से उपकरण उपयोग करने की कोशिश की है, लेकिन अभी तक नहीं किया है क्या गलत इसके साथ यह पता लगाने में सफल रहे।
संपूर्ण नियंत्रक फ़ाइल code है।
// संपादित
-(void) viewWillDisappear:(BOOL)animated{
[super viewWillDisappear:animated];
if(_player.rate == 1.0){
[_player pause];
}
[idleTimer invalidate];
if(mTimeObserver){
[_player removeTimeObserver:mTimeObserver];
mTimeObserver = nil;
}
[_playerItem removeObserver:self forKeyPath:kStatusKeyT];
[[NSNotificationCenter defaultCenter] removeObserver:self name:AVPlayerItemDidPlayToEndTimeNotification object:_playerItem];
_player = nil;
_playerItem = nil;
idleTimer = nil;
_tapGestureRecognizer = nil;
}
-(void) dealloc
{
NSLog(@"DEALLOCING");
}
क्षमा करें, लेकिन कोई भी आपकी पूरी फ़ाइल के माध्यम से जाने के लिए जा रहा है ... आपको कुछ और डिबग करके इसे कम करने की आवश्यकता है (उदाहरण के लिए कुछ सुविधाओं को अक्षम करें और फिर से प्रयास करें या यह निर्धारित करने के लिए उपकरणों में आवंटन दृश्य का उपयोग करें कि यह कहां हो रहा है बनाए रखा, आदि) – borrrden
मुझे पता है, मैंने अभी पूरी चीज को जोड़ा है ताकि मैं कुछ भी छोड़ न सकूं जो लीक पैदा कर सकता है .. मैं सिर्फ प्रासंगिक कोड कॉपी करूंगा और इसे यहां पेस्ट करूँगा। –
@ फ़ारज़हसन क्या आपने ऐप्पल को टिकट की रिपोर्ट करने की कोशिश की है? – CAMOBAP