
iOS编程学习
文章平均质量分 89
shoolay
最光辉的一次传说
展开
-
iOS 组件二进制与源码查看及调试方案
好久没有写文章了这里记录一下把项目代码二进制化提高编译效率的整个过程中碰到的问题和解决方案等等。原创 2022-12-11 19:37:00 · 1406 阅读 · 0 评论 -
iOS代码覆盖率方法总结
iOS代码覆盖率方法总结原创 2020-12-18 21:29:15 · 1884 阅读 · 1 评论 -
音视频入门(学习ffmpeg tutorial之iOS 音视频同步)
基本原理音频和视频流内部有信息来控制播放的时机以及速度,音频内部有采样率,视频有帧率,表明每秒播放帧数,但是呢这两个数值很明显是不同的,比如音频一般是44100HZ,而fps一般标准是60,那么要想让音视频同步,就需要使音频流和视频流往同一个标准时间上靠近。这里我们选择音频流的时间作为标准。如何往音频流时间靠,需要一些比较细的计算方式,一般采用PTS和DTS,也就是展示时间戳和解码时间戳(也就...原创 2019-12-31 18:25:18 · 485 阅读 · 0 评论 -
音视频入门(学习ffmpeg tutorial之 iOS音频解码与播放)
隔了好久好久。。。。,其实ffmpeg是有专门的教程的,只是其中很多内容过期了,我这里也只是当作一个学习的过程,然后记录下来。音视频开发需要具备的知识点如下(从他人处copy过来的)rtsp、sdp、tcp、udp、ip协议(rtsp的DESCRIBE、OPTION、SETUP、PLAY、PAUSE、TEARDOWN;tcp连接的三次握手/断开的四次握手)socket多线程opengl ...原创 2019-12-18 16:04:41 · 500 阅读 · 4 评论 -
iOS的一种多tableview左右滚动,以及tableview上下滚动悬挂效果(嵌套scrollview布局)
项目中碰到了这种效果,以qq为例 该页面需要实现的效果是好友,群聊,设备,通讯录以及公众号五个tab能实现左右滚动,并且还需要能够从新朋友开始上下滑动。并最终将前面的五个tab悬挂在顶部。在网上查了一下,找到了两种比较合适的解决方案。1.这种页面布局比较容易想到,也确实能够实现所需要的效果,但是需要解决的问题就是上下的两个tableview之间的手势冲突,保证滑动绿色的第一个tableview...原创 2018-04-07 16:03:06 · 7722 阅读 · 1 评论 -
iOS 二维码扫描登录
二维码扫描方面,其实客户端能做的事情相对有限,基本上只需要完成扫描二维码,获取二维码中的字符串然后将该字符串以及用户id发给后端处理就好了。首先介绍一下扫描登录的基本流程。 网页向服务器请求二维码生成。服务器生成一个qrcodeID,全局唯一,能够标志该二维码,并使用该qrcodeID生成一个二维码。用户使用手机扫描该网页上的二维码(二维码其实就是一串字符)获得该qrcodeID。手原创 2017-11-05 10:27:47 · 3583 阅读 · 0 评论 -
git合并导致项目无法打开(project.pbxproject)
最近经历了一次分之合并导致项目打不开的情况。按照网上的说法,找到了问题的根源project.pbxproject文件,该文件位于项目文件.xcodeproj中,使用右键查看包内容就可以找到。 但是网上说的是这个文件中会出现conflicts,和平常的conflicts一样存在有>>>这样的符号,但是我的pbxproject文件中完全没有这样的符号。估摸着是merge的时候git觉得没啥冲突直接就原创 2017-10-12 22:53:12 · 1547 阅读 · 0 评论 -
error: warning: Stopped in a context claiming to capture an Objective-C object pointer,
如图所示,选中工程,选择target然后在build setting中搜索modules,将Enable Clang Module Debugging改成NO(注意并非图中被选中的那一行)原创 2017-04-24 20:37:49 · 932 阅读 · 1 评论 -
音视频入门
最近在熟悉iOS音视频相关的内容。音视频主要内容包括:编解码、封装与解封装、相关网络传输协议以及音视频同步。大致关系如下图(从网上搜到的): 协议:类似于http一样,音视频通讯有rtmp、hls等网络应用层协议,这些应用层协议规定了按照怎样的规则对数据进行传输。比如hls就规定将数据进行分段,然后首先拉取一个根index文件,之后根据这个索引文件拉取次级索引文件,最后根据这些...原创 2018-07-04 22:31:21 · 584 阅读 · 0 评论 -
音视频入门 (iOS上fdk-aac的交叉编译)
前篇音视频入门记录了我对音视频的一些基础理解。现在将我在交叉编译ffmpeg之前的一些准备工作记录一下。本文记录fdk-aac的交叉编译,首先需要说明几个问题:基本概念交叉编译:有过移动开发经验或者嵌入式开发经验的对这个行为应该是非常熟悉的,所谓交叉编译就是在平台A(比如电脑)上利用提供的编译链工具编译出能够运行在平台B(比如手机)的代码的整个过程。iOS提供的编译工具链就是xcode...原创 2018-07-30 22:46:53 · 1219 阅读 · 0 评论 -
音视频入门(iOS的x264的交叉编译)
本篇记录我编译x264包的过程。概念在上一篇iOS上fdk-aac的交叉编译已经介绍了,所以这里简单粗暴的上configure:export CC="xcrun -sdk iphoneos clang"export AS="gas-preprocessor.pl xcrun -sdk iphoneos clang"./configure \--enable-static \--en...原创 2018-12-23 18:18:21 · 2641 阅读 · 0 评论 -
音视频入门(iOS编译ffmpeg的configure配置)
本篇文章接之前的x264编译configure选项,写一下ffmpeg的configure选项。ffmpeg的arm64架构configure选项./configure \--disable-everything \ //首先关闭所有configure选项,保证编译的时候不会需要引入很多多余的代码模块--enable-gpl \ //使用gpl协议,如果是公司产品要...原创 2019-01-10 11:24:14 · 8753 阅读 · 0 评论 -
音视频入门(学习ffmpeg tutorial之iOS 环境搭建)
目前做的事情就是按照ffmpeg tutorial上的内容学习写一个简单的播放器,这本教程虽然已经过时了,但是针对ffplayer(ffplayer是ffmpeg官方给出的示例播放器,ijkplayer就是根据ffplayer改造的播放器)中的编解码流程描述依然是正确的,所以在学习此教程的时候有很多老的API需要修改,尤其是针对SDL的api。目前我用的SDK版本是ffmpeg4.0.2以及sdl...原创 2019-01-22 18:25:20 · 10752 阅读 · 0 评论 -
音视频入门(学习ffmpeg tutorial之 iOS视频解码及展示)
使用ffmpeg进行解码的流程是固定的,就如同iOS开发一样,从viewDidLoad,viewWillApear,viewDidAppear,苹果都已经把需要调用的方法顺序告诉我们了,需要我们做的就是把自己业务代码合理的放到对应的位置。视频解码基本流程注册需要支持的文件格式以及对应的编解码器打开文件从文件中提取数据流信息从数据流(视频数据流/音频数据流/字幕数据流)中找到对应的视频数...原创 2019-01-30 18:00:17 · 359 阅读 · 0 评论 -
iOS 如何通过变量获取对应的变量名
最近在整理项目代码中key-value中的key,原来的老的代码处理的比较简单,直接使用#define kFirstSplash @"kFirstSplash"虽然目前这样的字符串define已经都整理到了一个文件中,但是我还是觉使用define的方式不够“面向对象”(强行找理由),另外每次定义一个key,还要专门写两遍一模一样的字符串,因此就在思考,怎么样在OC的代码中直接通过变量获取到这...原创 2019-02-24 17:53:52 · 1455 阅读 · 0 评论 -
关于protobuf的一些总结
最近面试中被问protobuf的加解码原理,非常的尴尬,因为我没了解过,这里稍作总结proto文件每一个proto文件其实对应着我们正常的一个模型(也就是model),只是proto文件是用来描述这样的一个模型的文件,并非实际上的工程model。举个例子,文件Person.proto:message Person{ required int32 id = 1; optional str...原创 2019-08-16 20:26:55 · 1651 阅读 · 0 评论 -
sqlite数据库中常用的sql语句
sqlite转载 2015-09-04 21:45:51 · 862 阅读 · 0 评论