- 博客(30)
- 收藏
- 关注
原创 iOS平台VoIP应用音频冲突的分析及解决
iOS VoIP应用在微信通话后出现无声问题,主要原因是音频会话冲突。当微信等应用中断音频会话后,系统不会自动恢复原应用的控制权。解决方案: 使用AVAudioSession监听音频中断通知,而非已失效的CallKit方案 在中断开始时暂停音频,保存状态 中断结束时主动重新激活音频会话 强制设置正确的音频会话类别和模式(如PlayAndRecord+VoiceChat) 关键代码需实现中断处理:注册监听AVAudioSession.interruptionNotification,在中断结束时调用setAc
2025-07-30 16:01:42
1183
原创 C++ 进阶
C++进阶:现代C++核心概念解析 本文深入探讨了现代C++(C++11/14/17/20)的核心特性,重点讲解了移动语义、右值引用和万能引用等关键概念。 移动语义:通过转移资源所有权而非复制,显著提升性能。std::move和std::forward的区别在于移动和完美转发的不同场景。 引用类型: 左值引用:绑定到具名对象 右值引用(&&):绑定临时对象,支持移动语义 万能引用(T&&):通过类型推导既可绑定左值也可绑定右值 特殊规则: 定义拷贝构造函数会阻止编译器生成移动
2025-07-29 16:58:10
730
原创 C++ 基础入门
摘要:C++是一种面向对象、高性能的通用编程语言,由Bjarne Stroustrup在1985年开发。它支持多种编程范式(过程化、面向对象、泛型编程),具有高效的内存管理和强类型检查特性。C++程序结构包含预处理指令、命名空间和主函数等基本元素,通过变量声明、数据类型定义等语法组织代码。其核心特性包括标准模板库(STL)、多线程支持和与C语言的兼容性,适用于系统开发、游戏编程等高性能应用场景。初学者需掌握基础语法、面向对象概念和内存管理机制来有效使用C++。
2025-07-24 18:42:34
956
原创 Flutter-详解布局
本文介绍了Flutter中的核心布局Widget,包括Row/Column(线性排列)、Stack(重叠布局)、Wrap(流式换行)、Flow(自定义布局)和ListView(可滚动布局)。重点讲解了它们的使用规则、注意事项和典型应用场景。Row/Column需注意主轴和交叉轴对齐方式;Stack可实现层叠效果;Wrap自动换行避免溢出;Flow用于高性能自定义布局;ListView适合长列表滚动展示。合理选择布局Widget并掌握其特性,是构建Flutter复杂UI的关键。
2025-07-07 09:57:37
1380
原创 一台电脑管理多个cocoapods账号
本文针对在单台电脑上管理多个CocoaPods账号的需求,提供了两种解决方案。当创建新账号时会覆盖原账号token,导致无法同时管理。方法一是通过环境变量动态设置COCOAPODS_TRUNK_TOKEN,并编写切换脚本备份/恢复各账号的.netrc凭证文件;方法二则创建pod-switch脚本直接切换凭证文件。两种方案都需先注册验证账号并备份token,使用时通过命令行快速切换。文末附有详细操作步骤和验证截图,有效解决了CocoaPods默认不支持多账号切换的问题
2025-06-19 11:23:33
440
原创 iOS-发布代码到cocoapods上详细步骤
本文详细介绍了如何将代码发布到CocoaPods的完整流程。首先需要创建Framework项目并进行配置,包括添加代码文件、设置公开头文件以及添加第三方库支持。重点讲解了如何打包通用Framework,分别编译真机和模拟器版本后,使用xcodebuild和lipo工具合并成xcfamework格式。同时提供了完整的打包脚本实现自动化构建。最后简要提及了后续发布到CocoaPods的准备工作,包括创建Podspec文件和版本控制等步骤。
2025-06-18 15:49:04
1287
原创 Flutter遇到的问题
开发Flutter项目时,一般推荐使用Stable版本,以确保项目的稳定性和可靠性。如需使用某些尚未在Stable版本中支持的功能,可以考虑使用Beta或Dev版本。Master版本则更适合于那些希望尝试最新功能并愿意承受潜在不稳定性的开发者。Master:最新的代码主分支,更新速度非常快,几乎每天都有提交,新功能多但可能不稳定。Dev:经过Google测试后的最新版本,包含新功能和改进。Beta:相对较稳定,但仍可能存在一些已知问题。Stable:最稳定的版本,推荐用于生产环境。
2025-05-23 15:29:41
601
原创 项目剖析04-swift 网络请求Moya+Alamofire(HTTPS)证书验证
SSL证书验证,HTTPS证书验证,ServerTrustEvaluation,Alamofire,Moya
2024-03-05 16:02:13
1140
1
原创 项目剖析03-swift 网络请求Moya+HandyJSON+RxSwift
项目第一版网络框架用的是siesta,它的缓存与自动刷新确实很好用而且代码很简洁,但是在文件的上传与下载以及对返回类型需要精确匹配要求这方面就很不友好,所以在第二版的我选择了Moya,它是一个网络抽象层,它在Alamofire基础上提供了一系列的抽象接口方便维护。关于Moya的使用介绍很多,我就不再赘述了。我主要记录一下我在使用过程中学到的处理方式。我的网络框架是搭着HandyJSON和RxSw...
2019-12-23 16:39:52
1500
原创 项目剖析02-swift 轻松实现动画效果-Lottie
Lottie 是 Airbnb开源的一套跨平台的动画效果解决方案,它能够同时支持iOS、Android、Web 和 React Native的开发,设计师只需要用 AdobeAfterEffects(AE) 设计出需要的的动画之后,使用 Lottie 提供的 Bodymovin 插件将设计好的动画导出成JSON格式(文件很小不会象GIF那么庞大)给你即可,可以让设计师实现所见即所得的动画再也不用...
2019-12-23 12:34:37
1438
原创 项目剖析01-swift WebSocket
已经很长一段时间没有总结项目了,正好最近完成项目第二版的改版(新项目完全是用swift写的),就把项目中一些有意义的知识块在此记录一下, 项目中有实时的交易需要展示,所以用到了socket长链接,我用的是Starscream这个第三方库,集成方法很简单去网站看看就知道。1 先上代码import UIKitimport Reachabilityimport Starscream...
2019-12-23 10:00:16
636
原创 iOS集成融云SDK即时通讯整理
iOS集成融云SDK即时通讯整理 最近很少写一下项目总结了,最近项目虽然做了很多,但是都是一些外包项目,做下来也没有什么值得总结的。最近一个项目用到了融云即时通讯,以前基本都是用环信,所以还遇到了一些问题,在此总结一下记录一下。1 头像、昵称等用户信息(融云对这个问题有两种处理方式)1.用户信息提供者实现步骤(以下代码放在单例中,可以是AppDelegate,最好单独写一...
2018-03-29 14:36:05
591
原创 UISearchBar详解
今天公司的项目测试的差不多了,基本可以上架了,又有时间来分享一下最近遇到的一些问题了,公司的项目进行了大改版(应该是全改了,基本是一个新的项目了),老大决定用swift重写。之前一直在自学swift,终于这一次可以实战了。项目中搜索用的比较多,但是搜索框的样式与默认的差别太大了,所以只能自定义了。
2017-03-11 00:27:34
604
原创 微信小程序tips
最近公司项目改版,趁产品修改与UI出图的间歇用公司商户端UI图撸了一把微信小程序。因为刚刚实习那一会接触过前端开发,所以上手还比较快,当然也遇到了很多的问题,不过好在基本按图完成。趁此总结一下我遇到的问题,奉上一些可行的解决方案,希望可以帮助与我遇到相同问题的朋友。demo 1、先上图2、tips1.背景图片不能使用本地的这个问题坑了我很久,因为在模拟器上跑时,将本地图片作为View的背景图片是可
2017-02-22 01:19:52
3371
原创 项目总结系列一 位置实时共享
从北京回来到今天已经整整三个月了,三个月没有更新优快云了。回来找了一家新的公司上班,正好今天新项目打包测试了,找了点时间来总结一下最近项目中遇到的一些问题与心得。今天主要分享位置实时共享,其实之前也有时间,因为在新的公司很少加班。但是自己太懒了所以……。1.谈谈新公司 进入公司才发现公司有个iOS大神和我是一个大学的 还是一个系的 还是同一级的,还有两个Android与我是一个专业的
2016-11-17 00:13:34
967
1
原创 iOS-webView上加载HTML视频不显示缩略图
最近在项目中遇到了一个比较棘手的问题:在原生的iOS的webView上面加载HTML视频发现没有缩略图,在网上查了资料发现在HTML里面有个poster属性(添加一个图片)可以设置缩略图,但是我们的后台告诉我视频资源本来就是来自网络的,没有缩略图只能自己解决了
2016-08-08 01:06:48
2893
5
原创 图片上传预览
本周帮一哥们写了一个页面遇到了一些问题,特此记录一下。主要遇到的问题是图片上传预览(多个上传控件)、多个颜色选择,遇到了冲突。一、这是代码上传的HTML部分代码<div id="home11" class="tab-pane in active lowerContent "> <div class="tool floatLef
2016-08-01 01:06:42
315
原创 iOS 下加载本地HTML/js/css/image 等路径问题
今天在项目中遇到一个问题:我将H5的文件拖入项目中,在webView上添加H5,运行时发现H5的样式与图片等都没有了。经过多种测试后发现:是路径的问题。在ios项目下添加本地HTML/js/css/image 当拖入项目时有两种选择: 一个是 Create groups for any added folders (创建虚拟结构-包结构) 一个是 Create folder references
2016-07-25 11:29:55
1418
原创 iOS-widget-Today 扩展
今天要分享的是通知中心扩展中的-Today扩展(ios8推出),ios目前可以使用的扩展有:today扩展(widget-即通知栏的今天一栏)、键盘自定义、文件管理、照片编辑扩展、通知扩展(推送)、分享扩展等。扩展与拥有这个扩展主应用的生命周期是独立的。他们是两个独立的进程。
2016-07-25 11:23:58
345
原创 与web前端朋友闲聊的发现-代码相通性
缘起 今天与一个做web前端的哥们闲聊了一会,他今天遇到了一个问题:就是在做一个混合开发的APP时候,他们H5端有一个页面需要做搜索,就是在搜索框内输入能够实时的展示搜索结果。想法与问题 他想监听了搜索框并且实时的进行数据的请求。后来发现输入的过程一直在进行远程数据的请求,他觉得这样消耗太大了。于是想做一个延时的操作,就是等用户稍微停止输入的时候才去远程请求数据。可是没有理清这个逻辑,于是
2016-07-15 23:50:50
321
原创 iOS-自定义带抽屉效果的tabBar
demo地址:gitHub一、先来个效果二、代码示例1.抽屉页作为根视图:@interface DrawerViewController (){ UITapGestureRecognizer *tapGesture;}//创建左边的抽屉@property (nonatomic, strong) LeftViewController *leftViewController;//创建右边的
2016-07-09 20:32:21
670
原创 Base64-不重要数据的简单加密
导语 最近公司要求对服务器的token等参数进行一个简单的加密,防止恶意请求。要求加密过程自定义,于是就想到了用base64,其实这不是一个加密解密的算法,其实它就是使用64个字符来对任意数据进行编码解码的,具体底层实现原理就不讨论了,它是随着iOS7推出的。我的实现过程(可以根据公司需求自定义):1.先编码一次 2.对编码结果的数据交换首位字符在编码一次 3.对编码结果逆序在编码一次示例
2016-07-09 20:31:41
439
原创 iOS-解压zip
最近的项目中涉及到了将zip文件从服务上下载下来,然后解压使用。搜索了一下发现有一个压缩与解压zip文件的第三方“SSZipArchive”:https://github.com/ZipArchive/ZipArchive 是用C语言实现的,包装用于OC与swift.一、在使用过程中遇到过几个坑:导入头文件冲突,我在pch文件里面导入了一些OC的头文件,而SSZipArchive是由C语言实现的,
2016-07-09 20:31:07
1341
原创 iOS-js与iOS的交互(基于WKWebViewJavascriptBridge第三方)
后天就要去北京出差了,据说那边的项目主要是与网页交互,所以就简单的研究了一下js与iOS的交互。 其交互方式有很多种一、native(app)通过UIWebView的代理方法拦截url scheme判断是否是我们需要拦截处理的url及其所对应的要处理的逻辑(可以实现对网页的返回、前景、刷新),比较通用和简单。self.webView = [[UIWebView alloc]initWithF
2016-07-09 20:30:21
589
原创 iOS-高德地图
一直以来在简书上学习了不少的知识,自己也想分享一些知识供大家指点,最近正好在研究高德地图API,所以分享一下自己最近捣鼓的。要使用高德API,首先要去高德API官网注册开发者账号,创建应用,获得key值。然后在本地创建自己的项目pod高德SDK,在pod时要提前思考清楚是否需要导航,我在这里就被坑过,因为导航的SDK包含搜索的SDK,如果将搜索SDK与导航SDK都pod了会报链接错误,所以如果需要
2016-07-09 20:19:07
421
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅