IOS直播平台开发简单的队列效果实现

本文围绕IOS直播平台开发展开,提及开发队列与多线程相关的NSOperation,需重写它并在start方法添加动画,手动触发KVO。还阐述了开发流程,如初始化、添加元素、判断队列元素是否为空等。重点强调将收到的礼物消息处理成队列,保证动画按顺序播放。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

说到IOS直播平台开发队列的话就想到了多线程,NSOperation ,我们可以重写它,然后在 start 方法中添加动画,但是注意我们只是需要让这些消息排队,更新 UI 还是要在主线程操作;我们还要手动触发 NSOperation 的 KVO,告诉这个操作什么时候开始,什么时候算是结束,我们想在一个动画播放完毕后再执行下一个动画,于是我这里定义了一个 block ,在动画结束时,传递给 NSOperation ,告诉它动画结束了。
1、IOS直播平台开发初始化

-(instancetype)init{
    self = [super init];
if (self) {义一个BOOL值来表示当前是否已完成
        _isUserMove = 0;中元素的数组
        _userLogin = [NSMutableArray array];
    return self;

2、忘队列中添加元素,我IOS直播平台开发这添加的是字典

-(void)addUserMove:(NSDictionary *)msg{
if (msg) {		//如果有值添加到队列数组中
        [_userLogin addObject:msg];
if(_isUserMove == 0){		//如果没有队列在运行,就直接运行
        [self userLoginOne];  }

3、判断在IOS直播平台开发队列数组中的元素是否为空

-(void)userLoginOne{为空就不走队列动画了
    if (_userLogin.count == 0 || _userLogin == nil) {
        return;组中的第一个元素,去进行动画
NSDictionary *Dic = [_userLogin firstObject];删除这个开始运行的元
    [_userLogin removeObjectAtIndex:0];画
	[self userPlar:Dic];

4、在IOS直播平台开发动画的实现

-(void)userPlar:(NSDictionary *)dic{
	//具体实现省略了 我这使用的是dispatch_after 也可以用[self performSelector:@selector(jieshu) withObject:nil afterDelay:3.5]BOOL为1
_isUserMove = 1;
 dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^画结束 设置BOOL值
            _isUserMove = 0;
if (_userLogin.count >0) {
                [self addUserMove:nil];

首先考虑的是,在IOS直播平台开发收到礼物消息的回调时去赋值数据源,运行动画,但是这个回调是是一个字典数组,里面包含了一段时间内多条消息,他们是有顺序的,这是其一;其二,这个回调调用次数会很频繁,短时间内就会收到更多的消息数组。所以需要把这些消息处理成队列,然后播放动画效果,一个动画效果播放完成后,再从消息队列中取下一个消息,继续播放下一个动画,这样才能在IOS直播平台开发时保证动画的播放顺序不回乱。}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值