簡單記錄一下。
1.popViewControllerAnimated
今天客戶反饋說在控制機器人的過程中App點退出后閃退。我自己驗證了一下,發(fā)現(xiàn)問題有點不對。
說下背景。 有個控制器,里面有2個定時器,其中一個定時器在滿足手機傾斜角度的情況下會每隔1s的給機器人發(fā)控制指令。然后點暫停按鈕會彈出一個UIAlertController,其中的退出這個Action,和控制器中的返回按鈕,共同調(diào)用一個返回函數(shù)。
一開始懷疑是控制器沒有正常析構(gòu),打印了deinit方法,發(fā)現(xiàn)調(diào)用了,排除了定時器沒有調(diào)用invalidate之類的低級錯誤后,轉(zhuǎn)而去查了一下Action的handler,發(fā)現(xiàn)用weak,unowned,或者干脆就用普通的self,都報錯:optional xxx found nil(黑人問號臉)
后來沒辦法就瞎搗鼓,popViewControllerAnimated(false)改成true點退出就 不 崩 了!
但讓人郁悶的是,返回和退出共用一個退出函數(shù),點返回什么情況下都沒事。。
后來去搜搜有沒有同樣的問題,一搜還真有:UINavigationController popViewControllerAnimated: crash in iOS 6
發(fā)現(xiàn)這歪果仁寫了一段話:
“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轉(zhuǎn)換錄音沒聲音
在錄制caf文件時,需要使用雙通道,否則在轉(zhuǎn)換為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))]//音頻質(zhì)量
3.iOS10 相冊權(quán)限不彈窗
有一種錯叫info.plist配置了對應字段卻還是不彈窗。 那么,百度和谷歌不會告訴你的是,需要檢查一下iPhone - 通用 - 訪問控制 - 照片 - 是否允許更改。
4.圖片base64操作可能的問題
將一個大圖轉(zhuǎn)換成小圖,小圖轉(zhuǎn)base64上傳的過程中,發(fā)現(xiàn)服務器上收到的是大圖。嘗試各種花樣(根據(jù)cgimage,data等)來生成新的圖片對象傳上去都是大圖。mutableCopy更是用不得,于是還是乖乖用drawrect做。
5.OC調(diào)Swift Framework出現(xiàn)類似@rpath/libswiftCallKit.dylib錯誤
在OC項目中,Build Settings->Build Options->ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES 設(shè)置為YES
6.類似info.plist配置了xxx但卻不起作用的情況
請堅持自己的操作是正確的前提下,檢查info.plist里的字段是否在Target->Info->Custom iOS Target Properties中出現(xiàn)。