gpt4 book ai didi

objective-c - 如何在 iOS 中拥有持久 View ?

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

我们正在使用一个 UInavigationController,其中一个 View 是播放配乐的 View 。

我们正在使用 AVfountation 框架。

我们点击按钮导航到音频列表(播放音乐的地方)

-(IBAction)audioBtnClicked
{
audiolist *audio=[[audiolist alloc] initWithNibName:@"audiolist" bundle:nil];
[self.navigationController pushViewContrller:audio animated:YES];
[audiolist release];
}

当用户播放音乐并导航离开时,音乐会继续播放

问题:当用户导航回歌曲列表并播放另一首轨道时,2 首歌曲同时播放。

我们认为每次用户返回时都会创建一个新的 audiolist 实例。我们希望只有一个 audiolist 实例。我们如何使 audiolist 的第一个实例持久化以及我们如何引用它?

最佳答案

你必须做

[audio release];

不是

[audiolist release];

audiolist 似乎是你的类(class)名称。命名约定说类应该是大写和驼峰式的,所以它应该是 AudioList。这将使您的代码更具可读性。

要拥有 AudioList 的一个共享实例,您可以这样做:

将类方法添加到您的 header :

+ (AudioList *) sharedInstance;

然后将其添加到您的实现文件中:

@implementation AudioList

static AudioList *gSharedInstance = nil;

+ (AudioList *) sharedInstance {
if (gSharedInstance == nil) {
gSharedInstance = [[AudioList alloc] init];
}

return gSharedInstance;
}

现在您可以随时访问该实例

[AudioList sharedInstance];

干杯。

关于objective-c - 如何在 iOS 中拥有持久 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7768679/

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