Swift高级
文章平均质量分 60
chokshen
技术改变人生!
展开
-
Alamofire提交json数组格式的参数
使用Alamofire发送请求时,官方api中Parameters的格式必须为[String: Any],如果想要直接提交json数组格式,应该如何提交呢?/// A dictionary of parameters to apply to a `URLRequest`.public typealias Parameters = [String: Any]open func request(_ convertible: URLConvertible, met原创 2020-12-02 09:59:28 · 2494 阅读 · 1 评论 -
iOS多级菜单、三级城市/地区选择器
Test原创 2018-05-25 23:02:49 · 3643 阅读 · 2 评论 -
ios11自定义titleView导致crash
项目里需要将searchbar放置在navigationbar上面,于是自定义titleView,并将searchbar作为子视图添加上去,之前一直好好的,不知道为什么后来一push到包含searchbar的控制器,应用就奔溃并抛出:libc++abi.dylib: terminating with uncaught exception of type NSException ove...原创 2018-06-06 14:05:50 · 574 阅读 · 0 评论 -
切换UIWindow的rootViewController时导致的内存泄漏
一、切换rootViewController之前,present某一控制器 self.window = UIWindow.init(frame: CGRect(x: 0, y: 0, width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height)) self.window?.root...原创 2018-07-25 21:50:20 · 3865 阅读 · 0 评论 -
Notification多次调用而引发的内存泄漏问题
最近项目中出现了一个奇怪bug,后台反映我在1s内同时发起了100多次请求,直接把后台整奔溃了。经过代码核查发现,我是在发送一个通知后,引发的多次后台请求。但是,经过测试我只post一次通知,所以感觉很奇怪,于是乎在addObserver的地方断点,奇怪的现象出现了,明明只post一次通知,但是却接受到了多次通知,所以只能一种可能:注册通知的时候存在多次重复注册通知。为什么会出现这...原创 2018-08-14 22:06:31 · 1801 阅读 · 0 评论 -
安卓和iOS音频互通方案总结
项目中独立开发语音聊天功能,涉及到了语音录制和语音播放这两大块技术,由于后台更换平台的缘故导致这一功能前前后后调整了几次方案,特此记录总结:1.AMR格式一开始和安卓端约定的音频格式是amr,因为amr格式的音频文件比较小,而且音质也还不错,微信语音聊天也是采用的这种格式。安卓端那边直接是可以直接录制amr格式的音频,代码如下:mRecorder = new MediaRecorde...原创 2018-12-03 16:15:57 · 3862 阅读 · 0 评论 -
记录一次关于tableview的内存泄漏
最近对整个项目中的内存泄漏进行清查,发现一个及其隐蔽的内存泄漏,特此记录: override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { var categoryCell = tableView.dequeueReu...原创 2019-01-29 11:08:01 · 1176 阅读 · 0 评论 -
Swift多数组组合算法
需求背景:在购物的过程中,挑选商品时,通常都要选择某个商品的规格,例如买衣服,需要从颜色、尺寸当中分别选中对应的规格才能确定买哪件衣服,这就需要用到多数组组合算法。 var combinationArray = [[String]]() override func viewDidLoad() { super.viewDidLoad() let...原创 2019-06-06 14:44:43 · 702 阅读 · 0 评论 -
pod 'filename used twice' build error
项目里一直存在一个很奇怪的问题,每次用pod导入一个新的第三方库,已经存在的第三方库就会报编译错误:'filename used twice' 以前以为是第三方库有问题,所以重新导入,问题得到了暂时的解决。但是指标不治本,每次pod新的第三方库,又会报这个错误。项目闲下来后仔细研究了下这个问题,发现是pod的project.pbxproj文件存在问题,重复引用第三方库的某些文件,所以导致...原创 2019-08-15 15:45:17 · 380 阅读 · 0 评论