AVSpeechSynthesizer不允许视图控制器取消分配

迈克·辛兹(Mike Simz)

我有一个视图控制器,在.h中,我有:

{
    NSString* textToSpeak;
}

@property (nonatomic, strong) AVSpeechSynthesizer*  synthesizer;

在我的视图控制器的.m中,我正在使用合成器播放和暂停我创建的预制脚本。

例如:

-(void)userProfileData:(UserProfileData *)userProfileData didReceiveDict:(NSDictionary *)dict
{

    NSDictionary* resultsDict = [dict valueForKey:@"result"];
    textToSpeak = [resultsDict objectForKey:@"text"];

    UIBarButtonItem* pauseItem = [self.navigationItem.rightBarButtonItems objectAtIndex:0];
    [pauseItem setEnabled:YES];


    [self startSpeaking];
}


-(void)startSpeaking
{
    if (!self.synthesizer) {
        self.synthesizer = [[AVSpeechSynthesizer alloc] init];
        self.synthesizer.delegate = self;
    }

    [self speakNextUtterance];
}


-(void)speakNextUtterance
{
    AVSpeechUtterance* nextUtterance = [[AVSpeechUtterance alloc] initWithString:textToSpeak];
    nextUtterance.rate = 0.25f;

    [self.synthesizer speakUtterance:nextUtterance];
}

在创建此合成器之前,我将导航回到父视图控制器并调用dealloc(我有一条log语句以确保它被调用)。但是,一旦添加此合成器,就不再调用dealloc。我想知道为什么会这样以及如何解决它。任何帮助都将是惊人的,谢谢!

迈克·辛兹(Mike Simz)

解决了问题.. @ChrisLoonam最终您提供了很大的帮助。我只需要事先停止合成器,然后一切都被释放了。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

UISearchViewController不允许尝试在取消分配时加载视图控制器的视图

不允许在取消分配时尝试加载视图控制器的视图,这可能会导致未定义的行为

不允许在取消分配时尝试加载视图控制器的视图,这可能会导致未定义的行为

该插件不允许使用控制器

是否从导航堆栈弹出视图控制器取消分配?

在导航控制器中取消分配具有 self 引用的视图控制器

使用控制器成分反应钩型不允许定制Antd选择显示标签

出现错误“导航控制器中不允许UINavigationControllers!”

控制器结构不正确,不允许执行多项操作

TYPO3 错误:插件“diagnoseList”不允许控制器“标准”

attr_reader不允许我访问其他控制器中的变量

控制器/创建/ ID不允许任何数据-Laravel

添加控制器后,在Swagger UI中不允许使用该方法

为什么简单的API控制器中不允许使用DELETE方法

取消视图控制器的取消锁定

尝试在取消分配视图时加载视图控制器的视图... UIAlertController

IIS允许访问特定控制器,但不允许所有具有Windows身份验证的网站

更改根视图控制器不会在同一窗口上取消分配先前的视图控制器

尝试在取消分配<SFAuthenticationViewController>时加载视图控制器的视图

取消推送的视图控制器

TinyMCE 不允许 MVC 控制器在通过 jQuery "$.post(...)" POST 时接收更新的 HTML/文本

405在ASP.NET Web API控制器中不允许使用方法选项?

BAD_EXC_ACCESS用于尝试在取消分配时加载视图控制器

为什么此Alert不让我的视图控制器取消分配?

不允许访问控制允许标题

取消分组将不允许滚动

不允许分配相同的类型

将视图控制器从特定视图控制器取消

此视图不允许使用EditItem