iOS开发
文章平均质量分 54
Ethan. L
iOS guy
展开
-
Alamofire请求重试机制和更新token
1. 应用场景发送网络请求时,一些请求失败后需要自动重试。大多数情况下,在重试前需要做一些操作,比如更新参数,更新 token 等。本文对应的真实场景: 发送请求 -> 返回401 -> 更新 token -> 重新请求如果不知道 Alamofire 提供了 retrier 机制,你很有可能想到在每一个请求的失败返回中手动重试,千万不要。下面详细介绍怎样利用 Alamofire 便捷地实现重试。2. Alamofire 的 RequestInterceptorRequestInt原创 2021-08-20 16:54:20 · 1752 阅读 · 6 评论 -
推荐一款全自动JSON转Model的工具JSONAccelerator
这是一款 Mac 上运行的开发工具不用手写一行代码支持 Objective C, Java, Python直接生产对应的 Model 文件Github 地址2021-02-01 修复了选项板显示不全的问题。原创 2021-02-01 08:31:55 · 542 阅读 · 0 评论 -
iPhone 12 启动图适配 (黑屏问题,已解)
Xcode 昨天发布了12.1 版本。里面有了iPhone 12 系列模拟器。跑了一下之前的项目,启动图(LaucnScreen)是黑屏。分别百度和谷歌了一下 iPhone 12 适配,均没有相关讨论。在这里起个话题,希望大家能一起在底下评论区讨论。我们启动图用的是 Storyboard,用一整张背景图片作为启动图,用ImageSet承载不同屏幕尺寸的对应的图片。启动黑屏肯定是因为没有找到对应屏幕尺寸的图片。但是手动给Contents.json加对应的尺寸,ImageSet会报警告。Conten原创 2020-10-22 10:56:58 · 5951 阅读 · 10 评论 -
Source Tree在推送时不断提示输入密码
在github上新建一个仓库,克隆到本地,增加内容之后,用sourceTree推送到远端时,多次弹出重新数日密码对话框:原因:sourcetree不知道托管类型,所以URL是错误的(从github上直接拷贝下来的URL是不行滴)对比:前一个是从github上直接拷贝下来的URL,后面的时设置好之后的URL解决办法:1.选中sourceTree原创 2015-08-13 16:33:07 · 22471 阅读 · 2 评论 -
The review of your app is taking longer than expected 解决方案
最近不少开发者在提交 App Store 审核时被拒,拒绝原因齐刷刷:Other - OtherHello,The review of your app is taking longer than expected. Once we have completed our review, we will notify you via Resolution Center.If you would like to inquire about the status of this review, yo原创 2020-06-15 15:32:52 · 10172 阅读 · 5 评论 -
Xcode升级11.1后 altool报错
升级Xcode之后,用Jenkins打包上传工程,最后一步上传IPA的时候报错:altool: command not found我用的是altool工具,命令:altool --upload-app -f $"path"stackOverflow和官网找了一圈,都说新版Xcode去掉了altool工具。绝望之余,我继续探索,终于在一个不太起眼的地方找到了可疑答案,经过尝试,成了!...原创 2019-10-12 17:25:27 · 2088 阅读 · 0 评论 -
AVAudioSession应用指南
官方API文档是这样对AVAudioSession描述的:audiosession负责调节你的app和ios系统里的音频行为.一旦加载了audiosession你可以获得一个audiosession的单例.你可以配置这个audiosession来控制你的app的音频行为.例如:当你的app播放声音的时候,你是希望其他正在播放声音的app静音还是混合两个app的声音? 你的a原创 2016-12-03 16:11:16 · 6268 阅读 · 0 评论 -
iOS自定义相册性能优化
相册浏览器/选择器/照相机Demo:LGPhotoBrowser大多数项目中都会用到相册浏览和选择功能,如果需要使用到自定义相册浏览器,那么,性能优化将是一个很重要的课题。毕竟操作对象是图片这样相对较大写数据单位。今天就针自定义相册浏览选择器四个优化点进行剖析:缩略图页面加载速度优化缩略图页面滑动流畅度优化大图浏览滑动流畅度优化内存优化先看看自定义相册的两个主要界面:原创 2015-10-22 09:39:05 · 7918 阅读 · 17 评论 -
iOS强制转换横竖屏和键盘方向控制
前言 在开发中,有时候我们回到这样一种需求:从一个竖屏界面跳转到下一个横屏界面,或者反之。如果是安卓的话,就很简单,安卓系统提供这样的API,直接操作即可。但是iOS就不好办了,在iOS3.0之前,系统还有一个接口用来设置应用屏幕方向setOrientation:,但是iOS3.0之后就被禁止了,成为了私有方法(也不知道苹果怎么想的)。 本文针对这个问题展开讨论,并提供解决方案原创 2017-03-13 20:30:32 · 16278 阅读 · 4 评论 -
OC中__kindof的用法
简介__kindof是苹果声明的一个新特性,它是和Nullability Annotations 以及 Generics 一起在xcode7中出现的。本文将对它进行详细介绍:使用方法假如我们声明了如下属性:@property (nonatomic, strong) NSArray *viewCollection;看属性名我们会认为它是元素为UIView的数组,但这只是猜测,翻译 2017-03-08 20:05:55 · 6876 阅读 · 0 评论 -
ios组件化设计-路由
对组件化设计一直是久闻大名,项目中没用过,自己之前也没主动了解过。直到今天看了一篇文章,觉得很实用,能解决很多问题,再次记录。原文链接:http://www.jianshu.com/p/76da56b3bd55有一下介个有趣的问题,相信很多人都为之惆怅了很久:1.3D-Touch功能或者点击推送消息,要求外部跳转到App内部一个很深层次的一个界面。比如微信的3D-Touch可以原创 2017-03-02 16:36:27 · 813 阅读 · 0 评论 -
UITextView行数限制
搜了一下,网上的方法都有点问题。看看最新方法:#pragma mark - UITextViewDelegate- (void)textViewDidChange:(UITextView *)textView{ CGRect textViewFrame = textView.frame; CGSize textSize = [textView sizeThatFits:CGSi原创 2016-12-22 11:34:46 · 4394 阅读 · 0 评论 -
iOS录音错误:Deactivating an audio session that has running I/O
情景再现:在开发过程中,发现执行以下代码的时候,xcode控制台输出了一个错误。[[AVAudioSession sharedInstance] setActive:NO withFlags:AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation原创 2016-11-24 18:36:20 · 13406 阅读 · 0 评论 -
IM软件中的语音录制与播放【iOS】
前言自从微信推出语音聊天后,人们的通讯方式发生了巨大变化,硬是把智能手机变成了对讲机。之后也成为了各种实时通讯软件不可或缺的功能。前一阵子微信公众号中展开了一场“发送语音消息利弊”的“讨论”。本文将针对语音录制和播放的实现进行分解,也附上一个本人写的语音录制和播放的Demo,仅供学习。LGAudioKit一、语音录制动作分解1.按下按钮,开始录制,显示录音指示界面;2.手指上滑原创 2016-08-21 14:00:49 · 7713 阅读 · 9 评论 -
UITableView插入、删除和重载方法详解
UITableView可以同一时间进行批量插入、删除和重载,这些动作可以指定动画。下面是七个相关的操作方法:- (void)beginUpdates;- (void)endUpdates; - (void)insertSections:(NSIndexSet *)sections withRowAnimation:(UITableViewRowAnimation)animation;翻译 2016-08-23 17:02:16 · 4290 阅读 · 0 评论 -
UIWebView注入js代码来改变其背景颜色和尺寸大小
前言有时候我们需要设置UIWebView的背景颜色,发现用backgroundColor并不起作用。还会遇到网页显示比实际UIWebView的尺寸大的问题。下面就说说用注入JS代码的方法来解决这些问题。设置UIWebView的背景颜色在- (void)webViewDidFinishLoad:(UIWebView *)webView方法里加入[webView stringByEva原创 2016-10-12 19:51:47 · 2630 阅读 · 0 评论 -
iOS10闪退解决
升级iOS10之后,在应用访问相册、相机、话筒、听筒的时候会发生崩溃。例如访问相机的时候xcode打印崩溃信息:“This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app's Info.plist must contain an原创 2016-09-19 16:21:01 · 5130 阅读 · 0 评论 -
performSelector用法
项目中常常或见到 [delegate performSelector:@selector(imageDownloader:didFinishWithImage:)withObject:self withObject:image]; performSelectorOnMainThread:withObject:waitUntilDone: performSelector:withOb原创 2015-11-11 11:18:17 · 1117 阅读 · 0 评论 -
iOS中给UIButton通过objc_setAssociatedObject给响应方法传参
本文着重讲解通过runtime给button关联对象,从而实现给button的响应方法传参数我们通过 addTarget: action:forControlEvents:方法给UIButton添加响应事件,形如:[btn addTarget:self action:@selector(btnTouhced:) forControlEvents:UIControlEventTo原创 2015-09-18 15:31:29 · 1089 阅读 · 0 评论 -
关于NSArray使用时用strong修饰还是copy修饰问题测试
大家都知道,使用NSMutableArray时是用strong修饰,例如:@property (nonatomic,strong) NSMutableArray * mutableArray;但是,NSArray呢?我看大多数人都直接使用strong,而且网上还有很多人说除了NSString用copy,其他对象类型都用strong。那么,问题来了:当用strong修饰NSArr原创 2015-08-15 18:53:11 · 13855 阅读 · 2 评论 -
swift中的可选类型(?)、强制解析(!)、自动解析、可选绑定、可选链
1. 前言对于一直用OC的iOS开发者来说,swift的可选类型可算是个新东西。刚开始接触swift的时候,(?), (!), (??)这些符号搞得我好晕,所以我觉得有必要整理出来,让更多的人不晕!2. 可选类型2.1 啥叫可选类型?就是Option类型,用(?)表示。被它修饰的变量,意味着这个变量可能有一个值,也有可能没值 。(让我想起了薛定谔的猫原创 2019-06-22 14:32:04 · 2035 阅读 · 0 评论 -
Apple Pay编程指南(6) -沙盒测试
文章目录Apple Pay 系列文章是苹果官方文档的中文翻译,这将是最详尽最规范的说明。原文链接:苹果开发文档明天翻译,原文请看链接,不难。翻译 2019-05-14 17:48:06 · 2004 阅读 · 0 评论 -
Apple Pay编程指南(5) - 处理付款结果
文章目录Apple Pay 系列文章是苹果官方文档的中文翻译,这将是最详尽最规范的说明。原文链接:苹果开发文档处理付款结果分为以下几个步骤:将支付信息连同处理订单所需的其他信息发送到服务器验证支付数据的散列和签名解密加密的支付数据向支付处理网络提交支付数据提交订单到您的订单跟踪系统您有两个处理支付的选项:您可以利用支付平台来处理支付,或者您可以自己实现支付处理。支付处理...翻译 2019-05-14 17:47:40 · 885 阅读 · 0 评论 -
Apple Pay编程指南(4) - 支付授权
文章目录通过代理方法更新你的地址和金额支付授权后会生成一个token处理完成之后再代理方法中dismiss控制器Apple Pay 系列文章是苹果官方文档的中文翻译,这将是最详尽最规范的说明。原文链接:苹果开发文档支付授权过程是支付授权视图控制器及其代理之间的合作工作。支付授权视图控制器做两件事:1. 让用户选择支付请求所需的账单和发货信息,2. 让用户授权支付。当用户与视图控制器交互...翻译 2019-05-14 17:47:10 · 770 阅读 · 0 评论 -
Apple Pay编程指南(3) - 创建支付请求
文章目录判断是否可以支付网页接口桥接支付请求包含的地区和货币信息支付请求包含的支付清单Shipping Method支付处理机制的支持设置运输和计费信息设置付一段代码Apple Pay 系列文章是苹果官方文档的中文翻译,这将是最详尽最规范的说明。原文链接:苹果开发文档支付请求是PKPaymentRequest类的实例。付款请求由摘要列表组成,这些摘要向用户描述支付的内容、可用的送货方法...翻译 2019-05-14 17:46:33 · 1191 阅读 · 0 评论 -
Apple Pay编程指南(2) - 环境配置
文章目录注册merchant ID创建Payment Processing certificateApple Pay 系列文章是苹果官方文档的中文翻译,这将是最详尽最规范的说明。原文链接:苹果开发文档merchant ID用于鉴别应用是否可以进行Apple Pay,与merchant ID相关联的Payment Processing certificate 用于加密支付信息。所以,在您...翻译 2019-05-14 17:45:54 · 1332 阅读 · 0 评论 -
Apple Pay编程指南(1) - 简介
这里写自定义目录标题前言Apple Pay说明如何测试Apple Pay交易?Apple Pay 系列文章是苹果官方文档的中文翻译,这将是最详尽最规范的说明。原文链接:苹果开发文档前言Apple Pay是一种移动支付技术,它为用户在iOS应用程序、watchOS应用程序和Safari网站上支付真实世界的商品和服务提供了一种简单而安全的方式。本编程指南讨论iOS应用程序中的Apple ...翻译 2019-05-14 17:45:24 · 976 阅读 · 0 评论 -
Font Awesome在iOS中的使用和注意事项
1. 什么是Font Awesome?简单说,它是一套图标字体库。 在iOS中用UILabel显示图标,就不用UI设计师切图了。究其原理,实际Font Awesome就是一套字体,只是显示出来的样子不是我们常见的文字。通过Unicode去显示实际样式,和汉字显示是一样一样的。2. Font Awesome在iOS工程中使用2.1 官网下载字体库要在iOS工程中使用,首先得在官网上下载对应...原创 2019-04-13 11:45:10 · 1288 阅读 · 0 评论 -
runtime消息分发-OC方法调用原理
概述你一定听说过“运行时是 Objective-C 的一个特色”,也经常在写方法调用。但你知道方法调用具体是个什么过程不?秉承知其所以然的优良传统,我们就花点时间来扒一扒runtime和方法调用的原理。runtime赋予OC的动态特性Object-C因为有了强大的runtime而成为一门动态语言,其动态性体现在:动态绑定,动态加载,动态类型。a.动态绑定:静态语言的函数调用是在编译过程中就...原创 2019-01-08 19:33:39 · 1004 阅读 · 0 评论 -
iOS动画曲线详解(UIView Animation Curves)
前言iOS应用中比较性感的动画,一般都不是匀速的。通俗的描述有:先快后慢,先慢后快,弹簧式的,不规则运动的,等等。本文针对这几种情况进行分解,内容包括:...原创 2018-05-20 20:44:37 · 8245 阅读 · 0 评论 -
iOS面试题-RunLoop
开篇iOS面试中,runLoop,runtime,内存管理,性能优化等更底层更的问题越来越受面试官的青睐,这确实是考察一个程序员知识深度和自主钻研能力的基本手段。虽然大多数程序员在开发过程中,这些知识点用的并不多,但是掌握这些知识,会帮助你写出更优秀的代码,避免一些“莫名其妙”的坑。想成为一名真正优秀的工程师,确实应该在相应的领域不断深挖,才能到达大多数到不了的高度。 此篇讲讲面试中runL...原创 2018-03-19 10:24:40 · 1771 阅读 · 0 评论 -
ios10.3app内好评SKStoreReviewController以及其他方式好评
App Store评分方式1. 通过openURL直接打开App Store无版本限制,可以直接跳转到评论界面。在评分页面,可以评分和评价,评论更有价值。缺点是跳转到App Store,需要登录,用户的操作场景的转换,会造成部分用户使用的困扰,可能需要花费较长的等待时间,甚至加载失败等,造成评价数量少。 12. 模态展示APP详情页iOS6+,应用内present一个控制器,展示的是APP详情原创 2017-09-26 16:33:57 · 2455 阅读 · 0 评论 -
【iOS】UIWindow中文详解
1.window 每个iOS应用都会有至少一个window,这个window就是UIWindow的实例,有些应用会有多个window。window会有如下几个职责:它包含了应用中的可见内容;它在视图和应用对象之间传递触摸事件中起很重要的作用;它和视图控制器配合完成方向转变。 在iOS系统中,windows没有标题栏、关闭框以及其他可视控件。一个window就是一个或多个翻译 2016-09-18 19:38:45 · 1235 阅读 · 0 评论 -
Xcode8问题以及解决办法汇总【更新中】
1.真机调试遇到“The application does not have a valid signature.”错误这个错误我查啊查啊,都说是xcode的bug,只能clean项目,按“shift+command+k”即可clean。2.注释快捷键“command+/”失效这个是因为苹果解决xcode ghost。把插件屏蔽了。解决方法:命令运行: sudo /usr/l原创 2016-09-19 15:12:40 · 2107 阅读 · 0 评论 -
远程推送didReceiveRemoteNotification代理方法调用详细说明
前言最近工作中实现远程推送点击状态栏的提醒,直接进入相应地详细界面的功能。遇到了问题,解决之后整理出来!UIApplication有两个关于接收到远程推送的代理:- application:didReceiveRemoteNotification:fetchCompletionHandler:- application:didReceiveRemoteNotification:原创 2016-01-05 13:20:36 · 30478 阅读 · 1 评论 -
控制器跳转之偷梁换柱
通常情况下,我们的控制器之间的跳转是这样的:A.Nav -push-> B B -pop-> A A -present-> B B -dismiss-> A相互之间都是有层级关系和顺序的。但是,有时候项目中需要实现这样一种情况:B.Nav -push-> X X -pop-> A这样说可能有点抽象,大家可以打开手机看看微信原创 2016-01-19 18:33:06 · 857 阅读 · 2 评论 -
Assets.xcassets的使用和优缺点
概述Assets.xcassets是iOS7推出的一个图像资源管理工具,为开发者提供很大方便。1. 方便app图标和启动页图片设置具体讲义:app图标和启动图2.展现1X,2X,3X图片简练3.支持多种图片格式看有人在网上说Assets.xcassets只支持png格式,本人亲测,其实是可以支持多种格式图片的,而且读取的时候不需要写后缀,例如:_原创 2015-12-10 13:30:23 · 14332 阅读 · 1 评论 -
iOS中math.h常用函数说明
1、三角函数 double sin (double);正弦 double cos (double);余弦 double tan (double);正切 2 、反三角函数 double asin (double); 结果介于[-PI/2, PI/2] double acos (double); 结果介于[0, PI] double atan (double)转载 2015-11-02 13:29:19 · 596 阅读 · 0 评论 -
UIImage旋转详解
本文讲解UIImage的旋转方法,是UIImage,不是UIImageView!!!主要用途:手机横屏拍照,需要得到一张width大于height的照片。或者其他用途说实在话,图片旋转的逻辑还是很烧脑的,需要一定的空间想象(虽然只是平面旋转)。经过一段时间的艰苦奋战,终于知其一二,并总结于此,望有助于后面的人!!!先来一段标准的图片旋转代码:- (U原创 2015-11-12 17:06:35 · 4969 阅读 · 0 评论 -
UIScrollView代理方法执行顺序
在每一个代理方法中打印当前代理方法的名称,滑动一下scrollView打印结果如下:2015-10-15 13:41:33.639 test[13345:2331992] scrollViewWillBeginDragging2015-10-15 13:41:33.640test[13345:2331992] scrollViewDidScroll2015-10-15 13原创 2015-10-15 13:48:37 · 934 阅读 · 0 评论