随笔分类 -  iOS

摘要:在了解`Masonry`框架之前,有必要先了解一下**自动布局**的概念。在`iOS6`之前,`UI`布局的方式是通过`frame`属性和`Autoresizing`来完成的,而在`iOS6`之后,苹果公司推出了`AutoLayout`的布局方式,它是一种基于约束性的、描述性的布局系统,尤其是苹果的手机屏幕尺寸变多之后,`AutoLayout`的应用也越来越广泛。 阅读全文
posted @ 2017-08-21 08:53 飞鱼湾 阅读(759) 评论(0) 推荐(0)
摘要:由于`CoreGraphics`框架有太多的`API`,对于初次接触或者对该框架不是十分了解的人,在绘图时,对`API`的选择会感到有些迷茫,甚至会觉得`iOS`的图形绘制有些繁琐。因此,本文主要介绍一下`iOS`的绘图方法和分析一下`CoreGraphics`框架的绘图原理。 阅读全文
posted @ 2017-08-08 17:32 飞鱼湾 阅读(792) 评论(0) 推荐(0)
摘要:最近遇到了一个问题,就是在`UIWebView`的代理方法里,执行`document.title`的`js`代码无法获取网页标题 阅读全文
posted @ 2017-07-21 14:27 飞鱼湾 阅读(595) 评论(0) 推荐(0)
摘要:今天来讲讲`iOS`开发过程中的阴影绘制及其潜在的绘图性能问题。虽然在开发过程中,我们使用阴影功能的机会不是很多,但是如果用了,有可能引起如卡顿等性能问题,所以,还是有必要来探究一下阴影的绘制过程,及如何提高阴影的绘制性能。 阅读全文
posted @ 2017-07-21 14:24 飞鱼湾 阅读(4978) 评论(0) 推荐(0)
摘要:今天来介绍一个小工具`ccache`,其可以提高`xcode`的编译速度。说起缘由,是因为我的苹果电脑配置比较低,而每次开发调试或测试打包都需要编译工程,虽然项目工程代码量不算大,但是编译的时间还是很长,尤其是修改了头文件或者`Archive`打包时,看着进度条像蜗牛在爬一样,心里都有小动物在奔腾...... 阅读全文
posted @ 2017-07-21 14:15 飞鱼湾 阅读(10254) 评论(1) 推荐(0)
摘要:在开发`iOS`应用程序的过程中,经常需要根据不同的需求,切换到不同的项目配置,或者打不同的包(测试环境、开发环境、生产环境等等),如果每次都是手动配置,一则比较麻烦,二则容易配置错,那么有没有更好的方案来解决这个问题呢?答案是:有的。我们可以根据不同的需求,创建不同的`target`,在不同需求要切换配置或打包时,直接选择对应的`target`完成工作,从而提高我们的开发效率。 阅读全文
posted @ 2017-07-21 12:15 飞鱼湾 阅读(2262) 评论(0) 推荐(0)
摘要:`iOS`开发过程中,有一类的错误会经常遇到,就是找不到所调用的方法,当然这类问题比较好解决,给当前对象或其父类对象添加该方法即可,使得编译器在编译时能正确找到该方法;或者,还有另外的方法,由于`Objective-C`是一门动态语言,我们也可以在运行期再给类添加该方法,一样可以解决该问题,而这就涉及了类的消息转发机制。 阅读全文
posted @ 2017-07-21 09:58 飞鱼湾 阅读(6979) 评论(0) 推荐(0)
摘要:在开发`iOS`的客户端应用时,经常需要从服务器下载图片,虽然系统提供了下载工具:NSData、NSURLSession等等方法,但是考虑到图片下载过程中,需要考虑的因素比较多,比如:异步下载、图片缓存、错误处理、编码解码等,以及实际需要中根据不同网络加载不同画质的图片等等需求,因此下载操作不是一个简单的下载动作就可以解决。 阅读全文
posted @ 2017-07-21 09:52 飞鱼湾 阅读(852) 评论(0) 推荐(0)
摘要:最近为了新的存管`app`上线,忙了近一个月,重新过了一段`996`的日子,今天终于可以喘口气,继续更新博客了。本文记录一下在`iOS 9`中发送`https`请求遇到的问题及解决办法,希望通过本文,可以对`ATS `的配置有一个更深入的了解。 阅读全文
posted @ 2017-07-21 09:49 飞鱼湾 阅读(5895) 评论(0) 推荐(0)
摘要:在`iOS`开发过程中,我们经常需要用到`等同性`来判断两个对象是否相等,通常我们会使用`==`来判断,但是这样比较出来的结果可能不是我们期望的;所以,一般我们会使用`NSObject`协议声明的`isEqual`方法来判断对象的`等同性`。并且,为了更好的进行深层次的比较,iOS系统中的`NSObject`子类还实现了各自的`isEqual:`方法。 阅读全文
posted @ 2017-07-21 09:46 飞鱼湾 阅读(469) 评论(0) 推荐(0)
摘要:`AFNetworking`基本是苹果开发中网络请求库的标配,它是一个轻量级的网络库,专门针对`iOS`和`OS X`的网络应用设计,具有模块化的架构和丰富的`APIs`接口,功能强大并且使用简单,深受苹果应用开发人员的喜爱。 阅读全文
posted @ 2017-07-21 09:44 飞鱼湾 阅读(362) 评论(0) 推荐(0)
摘要:最近研究了一下项目的组件化,把`casa`、`bang`、`limboy`的有关组件化的博客看了一遍,学到了不少东西,对目前业界的组件化方案有了一定的了解。这些高质量的博客大致讨论了组件化的三种方案:`url-block`、`protocol-class`(和`url-controller`类似)、`target-action`,以及应用这三种组件化方案的时机、步骤、利弊等等。 阅读全文
posted @ 2017-07-21 09:38 飞鱼湾 阅读(22417) 评论(2) 推荐(0)
摘要:iOS开发中经常会用到数据和模型的互相转换,大致有两种转换方式:1.手动写转换的代码,2.利用开源库进行转换。常用的开源库有:`JSONModel`、`Mantle`、`MJExtension`、`YYModel`等等,本文主要介绍一下`MJExtension`的底层实现,看一看小码哥如何设计这个轻量级的数模转换框架。 阅读全文
posted @ 2017-07-20 11:59 飞鱼湾 阅读(3945) 评论(0) 推荐(0)
摘要:年前升级了`Cocoapods`库,从`0.39`升级到了`1.2.0-beta`版,然后用模拟器和真机测试都是没有问题的,均可以成功编译。今天测试人员要测试包,准备`archive`打包时,却提示:`ld: library not found for -lMantle`,瞬间感觉哪儿不对,明明可以运行,真机测试也没问题,怎么打包出现找不到`Mantle`库的问题,然后就开始分析。 阅读全文
posted @ 2017-07-20 10:12 飞鱼湾 阅读(297) 评论(0) 推荐(0)
摘要:前端布局一直是CSS的一个重点应用,然而基于盒子模型的传统布局方案,依赖`display` + `position` + `float` 属性,对于某些特殊的布局非常不方便,比如:**垂直居中**就不容易实现。针对这一情况,在`2009`年,`W3C`提出了一种新的方案:`Flex`布局,可以简便、完整、响应式地实现前端的各种布局,并且已经得到几乎所有浏览器的支持。 阅读全文
posted @ 2017-07-20 10:05 飞鱼湾 阅读(2967) 评论(1) 推荐(3)
摘要:`2013`年的`WWDC`大会上,苹果推出了`NSURLSession`,对`Foundation URL`加载系统进行了彻底的重构,提供了更丰富的`API`来处理网络请求,如:支持`http2.0`协议、直接把数据下载到磁盘、同一`session`发送多个请求、下载是多线程异步处理和提供全局的`session`并可以统一配置等等,提高了`NSURLSession`的易用性、灵活性,更加地适合移动开发的需求。 阅读全文
posted @ 2017-07-20 10:00 飞鱼湾 阅读(933) 评论(0) 推荐(0)
摘要:尽管`NSURLConnection`已经不建议使用了,`iOS 7`取而代之的是`NSURLSession`,但是本文依然打算剖析一下,其中一些思想还是值得学习一下,如果您不用`NSURLConnection`,并且也不打算尝试使用,可以跳过本文。 阅读全文
posted @ 2017-07-19 17:37 飞鱼湾 阅读(3170) 评论(0) 推荐(0)
摘要:蓝牙是一个标准的无线通讯协议,具有设备成本低、传输距离近和功耗低等特点,被广泛的应用在多种场合。蓝牙一般分为传统蓝牙和`BLE`两种模式:传统蓝牙可以传输音频等较大数据量,距离近、功耗相对大;而`BLE`则用来传输节点数据,传输数据量十分小,多数情况处于休眠状态,因而功耗十分低,被广泛的应用于智能穿戴设备。 阅读全文
posted @ 2017-07-19 17:32 飞鱼湾 阅读(3674) 评论(0) 推荐(0)
摘要:本文讲解`iOS`的远程通知的基本使用,主要包括远程通知的类型,处理远程通知的场景,以及远程通知相关证书的配置等等。 阅读全文
posted @ 2017-07-19 17:23 飞鱼湾 阅读(1140) 评论(0) 推荐(0)
摘要:iOS 10以前的通知比较杂乱,把本地通知和远程通知分开了,诞生了许多功能类似的API,很容易让初学者犯迷糊。而iOS 10的通知把API做了统一,利用独立的UserNotifications.framework框架来管理通知;并且,还增加了撤销单条通知、更新已展示通知、中途修改通知内容等等,以及在通知中展示图片视频,自定义通知UI等一系列新功能;总之,iOS 10的通知功能十分强大。 阅读全文
posted @ 2017-07-19 17:18 飞鱼湾 阅读(1537) 评论(0) 推荐(0)