2010-04-01 74 views
2

這是Apple的Addmusic示例中的代碼。MPMediaickerController由泄漏儀識別的內存泄漏

MPMediaPickerController *picker = 
    [[MPMediaPickerController alloc] initWithMediaTypes: MPMediaTypeMusic]; 

picker.delegate      = self; 
picker.allowsPickingMultipleItems = YES; 
picker.prompt      = NSLocalizedString (@"Add songs to play", "Prompt in media item picker"); 

// The media item picker uses the default UI style, so it needs a default-style 
//  status bar to match it visually 
[[UIApplication sharedApplication] setStatusBarStyle: UIStatusBarStyleDefault animated: YES]; 

[self presentModalViewController: picker animated: YES]; 
[picker release]; 

我用我的應用程序的代碼和泄漏儀器突出就行了泄漏:

[self presentModalViewController: picker animated: YES]; 

我認爲,這是因爲該行保留選擇器不能做個參考隨後發佈。

有沒有辦法解決這個問題,或者泄漏是否錯誤地識別泄漏?

+0

發佈您是否找到了解決此問題的方案? 即使對於Apple的「AddMusic」MPMediaPickerController示例,儀器也會在每次簡單打開拾取器後顯示100kB的內存使用量增長,然後使用完成按鈕取消它。 – zubko 2012-05-12 13:36:37

回答

0

它可以通過致電dismissModalViewControllerAnimated:

+0

因此,這是否意味着儀器錯誤地識別了泄漏,因爲我在代碼中執行dismissModalViewControllerAnimated:稍後? – Joe 2010-04-01 08:15:27

+0

我不確定。我想知道爲什麼[拾取器發佈]行在那裏,但爲什麼調用代碼會釋放它,如果它沒有保留它呢? – 2010-04-01 08:39:47

+0

選擇器保留與[MPMediaPickerController alloc]線,所以它必須釋放與[選擇器發佈] – Joe 2010-04-01 09:34:28