gpt4 book ai didi

objective-c - 需要内存管理帮助——静态类变量 Objective C

转载 作者:行者123 更新时间:2023-11-29 11:13:13 24 4
gpt4 key购买 nike

我想使用静态类变量来维护播放列表对象的状态,该对象将在我的应用程序中的多个类之间共享。

我在我的 AppDelegate 中调用了 getPlaylist,以便调用我的初始化类方法并设置 MSMutableArray。

然而,当我调用 addItemToPlaylist 时,内容变量不再是 NSMutableArray 的静态实例。相反,它指向内存中一个完全不同的地址——我每次调试时都指向一个不同的地址。

我做错了什么吗?提前致谢。

#import "Playlist.h"
static NSMutableArray *content;

@implementation Playlist

+ (void)initialize
{
content = [NSMutableArray arrayWithCapacity:10];
}

+ (NSMutableArray *)getPlaylist
{
if ([content count] == 0)
return nil;

return content;
}

+ (void)addItemToPlaylist:(PlaylistTrack *)track;
{
[content addObject:track];
}

最佳答案

[NSMutableArray arrayWithCapacity] 返回一个自动释放的对象(应该在运行时提示当前没有自动释放池)。

改为使用 [[NSMutableArray alloc] initWithCapacity] 并添加一个类方法以在完成后释放它。

编辑:干杯@Lvsti。

关于objective-c - 需要内存管理帮助——静态类变量 Objective C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10564072/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com