我的代碼的這一部分有多個內存泄漏。特別是對於這些數組:PlaylistItem,PlaylistItemID和PlaylistItemLength。問題是我無法成功釋放數組。當我嘗試使用insert [xxxx release];此代碼中的任何地方,應用程序都會鎖定。這絕對是驅使我nurtz!NSMutableArray內存泄漏問題
-(void)configureCueSet {
MPMediaQuery *myPlaylistsQuery = [MPMediaQuery playlistsQuery];
NSArray *playlists = [myPlaylistsQuery collections];
//Get # of items in a playlist and names -------------------------------------
NSArray *songs;
for (MPMediaPlaylist *playlist in playlists) {
NSString *playListItem = [playlist valueForProperty: MPMediaPlaylistPropertyName];
if ([playListItem isEqualToString: savedLastSelectedPlaylist]){
songs = [playlist items];
}
}
PlaylistItem = [[NSMutableArray alloc] init];
PlaylistItemID = [[NSMutableArray alloc] init];
PlaylistItemLength = [[NSMutableArray alloc] init];
for (MPMediaItem *song in songs) {
[PlaylistItem addObject:[song valueForProperty: MPMediaItemPropertyTitle]];
[PlaylistItemID addObject:[song valueForProperty: MPMediaItemPropertyPersistentID]];
[PlaylistItemLength addObject:[song valueForProperty: MPMediaItemPropertyPlaybackDuration]];
}
}
感謝您的回覆。添加[PlayListItem發佈];產生「SIGABRT」。我很困惑。 – Marsman 2011-02-04 21:45:21
你在哪裏添加它?只有在確定不再需要它們的情況下,才應該釋放陣列。就你的代碼片段而言,你正在填充數組而不實際使用它們。在某處放置它們將毫無意義。 – 2011-02-04 21:46:54