随笔分类 - IOS开发问题积累
摘要:一、现象 ReplayKit2运行过程中经常会被系统杀掉,在USB连接手机后可以导出crash log 二、Crash分析 该Crash是因为线程调度太频繁导致,推流以及编码SDK中为了稳定帧率,通常会启动一个线程,进入一个while循环,循环中通过sleep一定的时间实现每秒钟稳定在一定的帧率处理
阅读全文
摘要:一、苹果自6月30日发布iOS11系统之后,其中的Airplay的协议发生变更,导致市场上的苹果直播助手(录屏)大部分变得不可用,因此在iOS11之后需要寻找新的技术方案来录屏 1)采用系统提供的ReplayKit2 包含的System Screen Record的框架 2) 采用libUSB的方案
阅读全文
摘要:一、Xcode Xcode是mac OS平台上面开发的官方IDE,可以用来开发iOS应用和mac应用。随着iOS系统的升级,Xcode也会更新,而且是强制更新。 Xcode每次版本更新稳定性很差,经常Crash,最近的Xcode 8.3版本经常连接不上手机,需要重启电脑才能恢复。 Xcode和Vis
阅读全文
摘要:1、在一次性能优化中突然发现一个svg矢量图动画导致CPU持续占用的问题,该svg在web中使用, 即使webview释放之后,CPU依然占用达到10%,6s+上测试结果 svg如下所示: 注意该动画的时间是无限长,指定时间结束之后,CPU将不再占用,因此这可能是webkit中的bug。 svg是H
阅读全文
摘要:一、问题现象 debug连接真机情况下面,编译正常,调试也是正常的。 使用企业签名命令行编译打包 xcodebuild -target dailybuildipa -configuration DailyBuild -sdk iphoneos10.2 出包正常,安装的时候一圈快满的时候,失败。 二、
阅读全文
摘要:一、接着上一篇通过NSThread可以方便的创建一个线程,并且启动线程的Runloop,在线程体中执行一个while循环 然后我们就可以方便得利用这个线程了 二、那我们应该如何正确结束一个NSThread呢 NSThread结束可以调用两个方法,一个是对象方法-[Thread cancel],这个方
阅读全文
摘要:1、简单的可以想到,写一个while循环 但是这种方式存在缺陷,将导致CPU占用100%,两个核。 这种方式不优雅,会导致循环空转,占用大量CPU。即使在循环中加入sleep也不是特别好的方式。 2、在iOS中特有的方式,使用Runloop是否结束作为循环判断条件 在创建的线程体中运行上面的代码,将
阅读全文
摘要:1、iOS中一般UI上面常用两种定时器 NSTimer和CADisplayLink,那么它们分别的精确度是如何呢? CADisplayLink 是用于帧刷新定时器,也就是和界面的刷新率保持一致,理想情况下FPS为60,并尽力保持60 NSTimer是否可以比CADisplayLink更加精确呢,最精
阅读全文
摘要:进入根目录:$ svn add * --force A foo.c A somedir/bar.c A otherdir/docs/baz.doc
阅读全文
摘要:1、随便建立一个新的工程文件,profile,进入instruments 2、选中activity,可以看到所有进程,以及其它进程的CPU占用情况
阅读全文
摘要:1、通过Xcode的Device工具导出app.crash文件 2、将.crash 和 .dSYM符号 app放在同一个目录中 3、寻找symbolicatecrash,将symbolicatecrash放在同一目录中 find /Applications/Xcode.app -name symbo
阅读全文
摘要:恢复内容开始 1、VideoToolBox硬件解码H264流的过程中,如果App从前台按Home键进入后台,会立马产生一个-12903的错误 如果这个时候重置解码器,继续解码,会遇到 -12911的错误 ,-12911代表一种数据错误 当继续遇到I帧以后,后续的解码将会正常,也就意味着,解码器在后台
阅读全文
摘要:1、在ARC出现之前,Objetive-C的内存管理需要手工执行release&retain操作,这些极大增加了代码的编写难度,同时带来很多的crash。 同时大量的delegate是unretain的,如果忘记在dealloc中主动设置为空,将带来野指针的隐患。由于dealloc是一个线程不安全的
阅读全文
摘要:在手Q动漫的一份古老的代码中,现网发现少数crash,错误代码示例: 上述代码中的str可能是一个方法中的参数,栈中的变量在当前函数调用结束之后,str所在处的内存可能被重写成随机数据,访问该处内存便会导致异常。
阅读全文
摘要:Where to remove observer for NSNotification? Where to remove observer for NSNotification? 在dealloc方法中移除通知观察者带来crash NSNotificationCenter中的通知消息已经发出,而观察
阅读全文
摘要:ios 中Value Type 和 Class Type 有哪些异同点,这个问题是在微信的公共帐号中看到的,觉得挺有意思,这里梳理一下。 1、swift 中为什么要设置值类型? 值类型在参数传递、赋值的过程中采用的是Copy的过程,copy的"值"是该值所在的内存块,相比于class类型,copy更
阅读全文
摘要:一、编写一个简单的动画,使一个UIview从屏幕的左上角移动到左下角,间隔时间3S//// ViewController.m// CAAnimationTest//// Created by on 15-10-27.// Copyright (c) 2015年 va. All rights ...
阅读全文
摘要:armv6设备:iPhone, iPhone2, iPhone 3G,第一代、第二代iPod Toucharmv7设备:iPhone 3GS, iPhone 4, iPhone 4S iPad , iPad 2, the new iPad iPod Touch 3...
阅读全文
摘要:一、两个同样时常的caf音频文件,可以通过下面的代码混合二、代码地址: https://github.com/liqiushui/AudioRecorderCafMix
阅读全文
摘要:安装过程中一直报错:EnvironmentError: mysql_config not found最终下面的方式解决:58down voteaccepted+200Ok, well, first of all, let me check if I am on the same page as yo...
阅读全文