简单记录一下。
1.popViewControllerAnimated
今天客户反馈说在控制机器人的过程中App点退出后闪退。我自己验证了一下,发现问题有点不对。
说下背景。 有个控制器,里面有2个定时器,其中一个定时器在满足手机倾斜角度的情况下会每隔1s的给机器人发控制指令。然后点暂停按钮会弹出一个UIAlertController
,其中的退出这个Action
,和控制器中的返回按钮,共同调用一个返回函数。
一开始怀疑是控制器没有正常析构,打印了deinit
方法,发现调用了,排除了定时器没有调用invalidate
之类的低级错误后,转而去查了一下Action的handler
,发现用weak
,unowned
,或者干脆就用普通的self
,都报错:optional xxx found nil(黑人问号脸)
后来没办法就瞎捣鼓,popViewControllerAnimated(false)
改成true
点退出就 不 崩 了!
但让人郁闷的是,返回和退出共用一个退出函数,点返回什么情况下都没事。。
后来去搜搜有没有同样的问题,一搜还真有:UINavigationController popViewControllerAnimated: crash in iOS 6
发现这歪果仁写了一段话:
“Interestingly the crash doesn't occur if I use [self.navigationController popViewControllerAnimated:YES];
(YES rather than NO).
But of course this defeats the purpose of using a custom pop animation.”
Well,interesting.
2.lame转换录音没声音
在录制caf文件时,需要使用双通道,否则在转换为MP3格式时,声音不对
let recordSettings =
[AVSampleRateKey : NSNumber(float: Float(8000.0)),//声音采样率
AVFormatIDKey : NSNumber(int: Int32(kAudioFormatLinearPCM)),//编码格式
AVNumberOfChannelsKey : NSNumber(int: 2),//采集音轨必须双声道
AVEncoderAudioQualityKey : NSNumber(int: Int32(AVAudioQuality.Max.rawValue))]//音频质量
3.iOS10 相册权限不弹窗
有一种错叫info.plist
配置了对应字段却还是不弹窗。 那么,百度和谷歌不会告诉你的是,需要检查一下iPhone - 通用 - 访问控制 - 照片 - 是否允许更改。
4.图片base64操作可能的问题
将一个大图转换成小图,小图转base64上传的过程中,发现服务器上收到的是大图。尝试各种花样(根据cgimage,data等)来生成新的图片对象传上去都是大图。mutableCopy
更是用不得,于是还是乖乖用drawrect做。
5.OC调Swift Framework出现类似@rpath/libswiftCallKit.dylib错误
在OC项目中,Build Settings->Build Options->ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES 设置为YES
6.类似info.plist配置了xxx但却不起作用的情况
请坚持自己的操作是正确的前提下,检查info.plist里的字段是否在Target->Info->Custom iOS Target Properties中出现。