c - iOS 怎么模拟进栈与出栈

【字号: 日期:2023-11-12浏览:45作者:雯心

问题描述

在处理直播视频中 需要一边保存 char 到一个容器里 一边从里面取出来 然后播放 安卓人家实现了 用的是队列 但是iOS队列貌似没有这个功能 我试过把char 转化为OC对象 然后保存到数组里面 通过遍历数组取出数据播放 当然遍历数组肯定是放在子线程的 这中实现方式刚开始是没有问题,但是需要不停的遍历数组,遍历一段时间自动就停下来,不遍历数组了 请问各位大神 这个功能有什么好的方法解决吗 下面是具体操作

// 这是往数组里面添加数组 char *p = new char[ilen + 1]; memcpy(p, data, ilen);

NSData *data= [NSData dataWithBytes:p length:ilen];

[clientManager.dataArr addObject:data];

// 这个是遍历数组 [clientManager.dataArr enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {

int fragment_type;NSLog(@'+++++++++++%lu',(unsigned long)clientManager.dataArr.count);NSData *data = clientManager.dataArr[0];[clientManager.dataArr removeObjectAtIndex:0];char* Framebuf= (char*)[data bytes];NSLog(@'2<><><><><>>%s',Framebuf);int head_size = sizeof(FRAME_HEAD);FRAME_HEAD *frameHead = new FRAME_HEAD;memcpy(frameHead, Framebuf, head_size);int frameType = frameHead->iFrameType;

问题解答

回答1:

你这个怎么可以是进栈出栈呢?栈的特点是先进后出。直播数据你放入一个数组中,它不是流式的吗 一直在放入,你从0处一直往出拿,你用栈怎么可以实现。先进后出了,老的数据无法使用了

回答2:

可以参考下面的方法How do I make and use a Queue in Objective-C?Objective-C 队列实现

回答3:

不是直播 是回放 C++那面没法处理 发送命令到C++再到云终端需要过程 所以我们这需要处理

相关文章: