04 2016 档案

摘要:一、Swift泛型介绍 泛型是为 编程灵活性的一种语法,在函数、枚举、结构体、类中都得到充分的应用,它的引入可以起到占位符的作用,当类型暂时不确定的,只有等到调用函数时才能确定具体类型的时候可以引入泛型。 我们之前实际上已经使用过泛型,例如: 的`Array Dictionary`类型都是泛型集。 阅读全文
posted @ 2016-04-30 13:37 执着丶执念 阅读(556) 评论(0) 推荐(1)
摘要:一、Swift扩展 扩展就是向一个已有的类、结构体或枚举类型添加新功能,这包括在没有权限获取原始源代码的情况下扩展类型的能力。 扩展和 中的分类( )类似,但是它要比分类强大的多,它不仅可以扩展类,还可以扩展协议、枚举、结构体,另外扩展也不局限于扩展方法,还可以扩展便利构造方法、计算属性、下标脚本等 阅读全文
posted @ 2016-04-29 22:50 执着丶执念 阅读(402) 评论(0) 推荐(0)
摘要:一、Swift协议 协议是为方法、属性等定义一套规范,没有具体的实现,类似于Java中的抽象接口,它只是描述了方法或属性的骨架,而不是实现。方法和属性实现还需要通过定义类,函数和枚举完成。 1. 协议定义 2. 属性要求 协议不指定是否该属性应该是一个存储属性或者计算属性,它只指定所需的属性名称和读 阅读全文
posted @ 2016-04-27 23:47 执着丶执念 阅读(837) 评论(0) 推荐(0)
摘要:一、Swift的枚举 枚举 是一系相关联的值定义的一个公共的组类型,同时能够让你在编程的时候在类型安全的情况下去使用这些值。 中的枚举比 中的枚举强大得多, 因为 中的枚举是一等类型,它除了可以定义枚举值外,还可以在枚举中像类一样定义属性和方法 1. 简单枚举定义和使用 2. 枚举和switch语句 阅读全文
posted @ 2016-04-26 12:41 执着丶执念 阅读(841) 评论(0) 推荐(0)
摘要:一、Swift的类class 作为一门面向对象语言,类也是Swift的非常重要的类型,我们先来看下一个简单的类 二、属性 Swift中淡化了成员属性的概念,把属性分为两种: 1. 存储属性 : 无论从概念上还是定义方式上来看,存储属性更像其他语言中的成员变量,但是不同的是: 可以控制读写操作( 表示 阅读全文
posted @ 2016-04-25 12:19 执着丶执念 阅读(477) 评论(0) 推荐(1)
摘要:上一节我们讲了Swift的基础部分,例如数据类型、运算符和控制流等,现在我们来看下Swift的函数和闭包 一、Swift函数 函数是一个完成独立任务的代码块, 中的函数不仅可以像C语言中的函数一样作为函数的参数和返回值,而且还支持嵌套,支持函数参数默认值、可变参数等。 函数实例: 1. 普通函数 2 阅读全文
posted @ 2016-04-24 12:13 执着丶执念 阅读(594) 评论(0) 推荐(0)
摘要:一、Swift语言介绍 是苹果2014年推出的全新的编程语言,它继承了C语言、ObjC的特性,且克服了C语言的兼容性问题。 发展过程中不仅保留了ObjC很多语法特性,它也借鉴了多种现代化语言的特点,在其中你可以看到 、`Java Javascript Python`等多种语言的影子。 在2015年的 阅读全文
posted @ 2016-04-23 10:09 执着丶执念 阅读(700) 评论(1) 推荐(1)
摘要:一、日志重定向 我们在iOS开发过程中,我们时常会使用 打印到控制台的日志信息进行代码调试,但这样调试的前提是连接上Xcode。 如果进行真机调试但同时又不能连接Xcode的时候,就不能直接在xcode的控制台查看输出日志了,但是程序还是会执行那些Log的,如果要查看这些日志,我们就需要把输出日志信 阅读全文
posted @ 2016-04-22 12:29 执着丶执念 阅读(1120) 评论(0) 推荐(0)
摘要:一、响应式编程范式FRP FRP,全称为Functional Reactive Programming,是一种响应变化的编程范式,最近几年比较火,大概的理解就像这样: 当a的值或者b的值发生变化时,c的值会自动响应a的值或b的值变化的信号,自动更正自己的值,类似这种编程思想就称为FRP。 FRP提供 阅读全文
posted @ 2016-04-21 14:29 执着丶执念 阅读(1872) 评论(0) 推荐(1)
摘要:一、MJExtension第三方框架 我们在iOS开发过程中,我们常常需要将字典数据(也就是JSON数据)与Model模型之间的转化,例如网络请求返回的微博数据、等等,如果我们自己全部手动去创建模型并赋值,都是一些毫无技术含量的代码,费时费力,而且还可能会赋值出错,让我们很头疼。 框架就是为了解决这 阅读全文
posted @ 2016-04-20 13:16 执着丶执念 阅读(3030) 评论(0) 推荐(0)
摘要:一、时间和日期计算 我们在应用开发中,时常需要和时间打交道,比如获取当前时间,获取两个时间点相隔的时间等等,在iOS开发中与时间相关的类有如下几个: 1. :表示一个绝对的时间点 2. :时区信息 3. :本地化信息 4. :一个封装了具体年月日、时秒分、周、季度等的类 5. :日历类,它提供了大部 阅读全文
posted @ 2016-04-19 18:35 执着丶执念 阅读(618) 评论(0) 推荐(0)
摘要:一、Masonry介绍 之前我们在屏幕适配的章节中学习过 的使用,但那都是在可视化界面上进行添加约束完成的,我们很多时候都需要在代码中使用 约束,苹果也为我们提供了实现,使用 类表示约束,但使用起来比较复杂,代码量比较大,例如创建一个约束的方法: 如果约束一多,这个方法调用次数就会越多,代码就会变得 阅读全文
posted @ 2016-04-19 09:10 执着丶执念 阅读(1396) 评论(0) 推荐(1)
摘要:一、社交分享 现在很多应用都内置“社交分享”功能,可以将看到的新闻、博客、广告等内容分享到微博、微信、QQ、人人网等,其实从iOS6.0开始苹果官方就内置了 专门来实现社交分享功能,利用这个框架开发者只需要几句代码就可以实现内容分享。 Social框架使用步骤: 1. 导入 框架,添加头文件 2. 阅读全文
posted @ 2016-04-18 18:01 执着丶执念 阅读(872) 评论(1) 推荐(1)
摘要:一、CoreMotion框架介绍 我们知道有一些iOS的应用,会有一些特殊的要求,比如: 1. 电子罗盘指南针之类的应用:让我们知道方向。 2. 运动类型软件:让我们知道我们跑步多少公里。 3. 社交软件中的摇一摇功能。 4. 游戏中扮演角色类中根据设备的晃动等进行操作。 其实,他们多半是使用了iO 阅读全文
posted @ 2016-04-18 09:23 执着丶执念 阅读(2367) 评论(2) 推荐(1)
摘要:一、UICollectionView介绍 和`UICollectionViewController UITableView UITableViewController`类,但也有所不同。 可以实现如下效果,也是一个常用的控件: 二、UICollectiomView使用 的创建和 的创建有所不同: 1 阅读全文
posted @ 2016-04-17 16:48 执着丶执念 阅读(3663) 评论(0) 推荐(2)
摘要:一、iCloud云服务 iCloud是苹果提供的云端服务,用户可以将通讯录、备忘录、邮件、照片、音乐、视频等备份到云服务器并在各个苹果设备间直接进行共享而无需关心数据同步问题,甚至即使你的设备丢失后在一台新的设备上也可以通过Apple ID登录同步。 苹果已经将云端存储功能开放给开发者,可以存储两类 阅读全文
posted @ 2016-04-17 09:32 执着丶执念 阅读(877) 评论(0) 推荐(0)
摘要:一、从图册中获取本地图片和视频 从图册中获取文件,我们使用的是 ,这个类我们在之前的摄像头中使用过,这里是链接: "iOS学习笔记27 摄像头" ,这里我们使用的是它的另外一个功能,那就是从图册中获取图片和视频 基本步骤: 1. 创建 对象,并设置代理 2. 设置拾取源为图册,设置可编辑属性 3. 阅读全文
posted @ 2016-04-16 22:46 执着丶执念 阅读(295) 评论(0) 推荐(0)
摘要:一、蓝牙 随着蓝牙低功耗技术BLE(Bluetooth Low Energy)的发展,蓝牙技术正在一步步成熟,如今的大部分移动设备都配备有蓝牙4.0,相比之前的蓝牙技术耗电量大大降低。 在iOS中进行蓝牙传输常用的框架有如下几种: 1. : iOS7之前的蓝牙框架,只可用于同应用之间的蓝牙传输。 2 阅读全文
posted @ 2016-04-16 16:29 执着丶执念 阅读(2161) 评论(1) 推荐(1)
摘要:一、通讯录 iOS中的通讯录是存储在数据库中的,由于iOS的权限设计,开发人员是不允许直接访问通讯录数据库的,实现通讯录操作需要使用到 框架。 AddressBook.framework框架: 可以从底层去操作通讯录的所有信息,做到精确控制 是基于C语言编写的,无法使用ARC管理内存,需要开发者手动 阅读全文
posted @ 2016-04-16 08:59 执着丶执念 阅读(650) 评论(0) 推荐(0)
摘要:一、系统应用 在开发某些应用时,我们可能希望能够调用iOS系统内置的电话、短信、邮件、浏览器应用,或者直接调用安装的第三方应用,这个要怎么实现呢? 这里统一使用UIApplication的一个对象方法来实现: 那怎么区分我是要打电话还是发短信等等呢? 之前我们学习网络的时候,是不是URL最前面使用的 阅读全文
posted @ 2016-04-15 17:45 执着丶执念 阅读(473) 评论(2) 推荐(1)
摘要:一、摄像头 在iOS中,手机摄像头的使用有以下两种方法: 1. 拍照和视频录制 优点:使用方便,功能强大 缺点:高度封装性,无法实现一些自定义工作 2. 框架实现 优点:灵活性强,提供了很多现成的输入设备和输出设备,还有很多底层的内容可以供开发者使用 缺点:需要和底层打交道,学习难度大,使用复杂 我 阅读全文
posted @ 2016-04-15 09:18 执着丶执念 阅读(3116) 评论(0) 推荐(2)
摘要:一、视频 在iOS中播放视频可以使用两个框架来实现: 1. 框架的 和`MPMoviePlayerViewController` 2. 框架中的 3. 框架的 【iOS8之后才有】 但在近两年的WWDC上, 框架被iOS9标记为 ,意味着它已经不再被苹果继续维护,而且该框架集成度较高,不如 灵活性高 阅读全文
posted @ 2016-04-14 16:38 执着丶执念 阅读(568) 评论(0) 推荐(2)
摘要:一、录音 框架还有一个 类专门处理录音操作,它同样支持多种音频格式。 先来了解下 的常用属性: 常用对象方法: 常用的代理方法: 录音操作步骤【和音频播放类似】: 1. 导入 框架,导入头文件: 2. 设置音频会话类型为 , 因为涉及录音和播放操作。 3. 准备配置录音设置的字典,例如录音格式、录音 阅读全文
posted @ 2016-04-14 08:51 执着丶执念 阅读(626) 评论(0) 推荐(0)
摘要:一、屏幕适配 iOS的屏幕适配可以分为3大块,代表着不同时期的屏幕适配主流: 1. 在iOS6之前,完全能够胜任,因为当时苹果只有3.5寸屏,加上比较少的支持横屏,它有非常大的局限性:只能相对于父控件布局 2. 在iOS6之后,苹果多了几个尺寸屏幕,AutoResizing已经无能为力了,这时候苹果 阅读全文
posted @ 2016-04-13 22:19 执着丶执念 阅读(343) 评论(0) 推荐(2)
摘要:一、音频 在iOS中,音频播放从形式上可以分为音效播放和音乐播放。 音效: 主要指一些短音频的播放,这类音频一般不需要进行进度、循环等控制。 在iOS中,音效我们是使用 框架实现。 音乐: 主要指一些较长的音频,通常需要对播放进行精确控制。 在iOS中,音乐我们是使用 框架实现。 二、音效 框架是一 阅读全文
posted @ 2016-04-13 15:19 执着丶执念 阅读(528) 评论(0) 推荐(0)
摘要:一、推送通知 推送通知就是向用户推送一条信息来通知用户某件事件,可以在应用退到后台后,或者关闭后,能够通过推送一条消息通知用户某件事情,比如版本更新等等。 推送通知的常用应用场景: 一些任务管理APP,会到任务时间即将到达时,通知你该做任务了。 健身APP定时提醒你应该健身了。 买过电影票,提前半个 阅读全文
posted @ 2016-04-13 08:48 执着丶执念 阅读(704) 评论(1) 推荐(1)
摘要:温馨提示:这节的内容以图片为主,大家最好能在有WiFi下观看,不然的话烧流量就不关我的事了。O(∩_∩)O~。 一、iOS证书 iOS常用的证书包括 开发证书 和 发布证书 ,无论是真机调试还是最终发布应用到App Store这两个证书都是必须的,它是iOS开发的基本证书。Xcode7以后真机调试就 阅读全文
posted @ 2016-04-12 22:20 执着丶执念 阅读(1229) 评论(0) 推荐(0)
摘要:一、地图开发介绍 从iOS6.0开始地图数据不再由谷歌驱动,而是改用自家地图,当然在国内它的数据是由 高德地图 提供的。 在iOS中进行地图开发主要有三种方式: 利用 框架进行地图开发,利用这种方式可以对地图进行精准的控制 调用苹果官方自带的地图应用,主要用于一些简单的地图应用,无法精确控制 使用第 阅读全文
posted @ 2016-04-12 16:01 执着丶执念 阅读(552) 评论(2) 推荐(0)
摘要:一、定位介绍 现在很多社交、电商、团购应用都引入了地图和定位功能,似乎地图功能不再是地图应用和导航应用所特有的。的确,有了地图和定位功能确实让我们的生活更加丰富多彩,极大的改变了我们的生活方式。要实现地图、导航功能,往往需要先熟悉 定位功能 。 在iOS中通过 框架进行定位操作。 自身可以单独使用, 阅读全文
posted @ 2016-04-12 09:36 执着丶执念 阅读(477) 评论(0) 推荐(0)
摘要:一、CoreData介绍 CoreData是iOS5之后新出来的的一个框架, 是对SQLite进行一层封装升级后的一种数据持久化方式。 它提供了 映射的功能,即能够将OC对象转化为数据存储到SQLite数据库文件中,同时也能将数据库中的数据还原成OC对象。相较于SQLite,我们使用CoreData 阅读全文
posted @ 2016-04-11 23:04 执着丶执念 阅读(2414) 评论(0) 推荐(0)
摘要:上一节我已经介绍了SQLite的简单使用,不了解的可以提前去看一下 "iOS学习笔记16 数据库SQLite" ,这节我们来讲下FMDB。 一、FMDB介绍 FMDB是一种第三方的开源库,FMDB就是对SQLite的API进行了封装,加上了面向对象的思想,让我们不必使用繁琐的C语言API函数,比起直 阅读全文
posted @ 2016-04-11 15:09 执着丶执念 阅读(499) 评论(0) 推荐(0)
摘要:一、数据库 在项目开发中,通常都需要对数据进行离线缓存的处理,如新闻数据的离线缓存等。离线缓存一般都是把数据保存到项目的沙盒中。有以下几种方式: 1. 归档: 2. 偏好设置: 3. plist存储: 上述的使用可以参考 "iOS学习笔记15 序列化、偏好设置和归档" ,但上述三种方法都有一个致命的 阅读全文
posted @ 2016-04-11 08:10 执着丶执念 阅读(577) 评论(1) 推荐(0)
摘要:一、本地持久化 所谓的持久化,就是将数据保存到硬盘中,使得在应用程序或机器重启后可以继续访问之前保存的数据。在iOS开发中,有很多数据持久化的方案,接下来我将尝试着介绍一下5种方案: 1. plist文件(序列化) 2. preference(偏好设置) 3. NSKeyedArchiver(归档) 阅读全文
posted @ 2016-04-10 22:44 执着丶执念 阅读(753) 评论(1) 推荐(2)
摘要:一、WebView WebView就是一个内嵌浏览器控件,在iOS中主要有两种WebView: UIWebView 和 WKWebView ,UIWebView是iOS2之后开始使用,WKWebView是在iOS8开始使用,毫无疑问WKWebView将逐步取代笨重的UIWebView。 WKWebV 阅读全文
posted @ 2016-04-10 16:17 执着丶执念 阅读(1299) 评论(0) 推荐(0)
摘要:在2013年WWDC上苹果揭开了NSURLSession的面纱,将它作为NSURLConnection的继任者。现在使用最广泛的第三方网络框架:AFNetworking、SDWebImage等等都使用了NSURLSession。作为iOS开发人员,应该紧随苹果的步伐,不断的学习,无论是软件的更新、系 阅读全文
posted @ 2016-04-10 09:05 执着丶执念 阅读(479) 评论(0) 推荐(0)
摘要:一、网络请求 在网络开发中,需要了解一些常用的请求方法: GET请求:get是 获取数据 的意思,数据以明文在URL中传递,受限于URL长度,所以传输数据量比较小。 POST请求:post是 向服务器提交数据 的意思,提交的数据以实际内容形式存放到消息头中进行传递,无法在浏览器url中查看到,大小没 阅读全文
posted @ 2016-04-09 17:06 执着丶执念 阅读(671) 评论(0) 推荐(0)
摘要:一、iOS多线程 iOS多线程开发有三种方式: 1. NSThread 2. NSOperation 3. GCD iOS在每个进程启动后都会创建一个 主线程 , ,所以也称为 UI线程 ,是其他线程的父线程。 线程和进程的区别傻傻分不清楚: 线程(thread):用于指代独立执行的代码段。 进程( 阅读全文
posted @ 2016-04-08 23:04 执着丶执念 阅读(357) 评论(0) 推荐(0)
摘要:自己总结的学习iOS的笔记,打造一个全面的知识体系,iOS攻城狮修炼之路【持续更新中】 "iOS学习笔记01 APP相关" "iOS学习笔记02 UIScrollView" "iOS学习笔记03 UITableView" "iOS学习笔记04 视图切换" "iOS学习笔记05 触摸事件" "iOS学 阅读全文
posted @ 2016-04-08 17:05 执着丶执念 阅读(553) 评论(2) 推荐(0)
摘要:上次学习了 "iOS学习笔记09 核心动画CoreAnimation" ,这次继续学习动画,上次使用的 很多人感觉使用起来很繁琐,有没有更加方便的动画效果实现呢?答案是有的,那就是 UIView动画封装 一、UIView动画 苹果知道图层动画使用麻烦,就为我们封装到了 里,使我们可以简单的实现各种动 阅读全文
posted @ 2016-04-08 16:47 执着丶执念 阅读(401) 评论(0) 推荐(0)
摘要:一、CALayer CALayer包含在 QuartzCore 框架中,具有 跨平台 性,在iOS中使用Core Animation开发动画的本质是 将CALayer内容转化为位图从而供硬件操作 。 常用属性: | 属性 | 描述 | |: :|: :| | anchorPoint | 和中心pos 阅读全文
posted @ 2016-04-08 16:03 执着丶执念 阅读(1031) 评论(0) 推荐(0)
摘要:一、Quartz2D简单介绍 在iOS中常用的绘图框架就是 Quartz2D , Quartz2D 是 Core Graphics 框架的一部分,我们日常开发使用的所有UIKit组件都是由 Core Graphics 进行绘制的 在iOS中Quartz2D绘图的一般步骤: 1. 获取绘制上下文 2. 阅读全文
posted @ 2016-04-08 08:27 执着丶执念 阅读(425) 评论(0) 推荐(0)
摘要:之前我们已经学习了触摸处理和手势识别,其实这两个同属于iOS事件的触摸事件,今天我们来学习下iOS事件的另外两个事件: 一、运动事件 运动事件,是通过加速器进行触发,和触摸事件一样,继承UIResponder类的对象才能处理运动事件 UIResponder处理运动事件的方法: 你没有看错,这里说的运 阅读全文
posted @ 2016-04-04 10:53 执着丶执念 阅读(432) 评论(0) 推荐(0)
摘要:一、UIGestureRecognizer简单介绍 我们已经学习了触摸事件处理,但触摸事件处理起来很麻烦,每个触摸事件处理都需要实现3个touches方法,比较繁琐,实际上我们可以使用更加简单的触摸事件处理操作,那就是 手势识别 。 手势识别操作基类 不能直接使用,我们常使用的是它的子类,这些手势操 阅读全文
posted @ 2016-04-04 10:49 执着丶执念 阅读(177) 评论(0) 推荐(0)
摘要:一、事件分发处理【由外到内】 在iOS中发生触摸后,事件会加到 事件队列, 会从事件队列取出最前面的事件进行分发处理,通常会先分发给主窗口,主窗口会调用 方法,查找适合的事件触发视图,即 找到被触摸的视图对象 寻找流程如下: 1. 在顶级视图(keyWindow的视图)上调用 方法判断触摸点是否在当 阅读全文
posted @ 2016-04-04 10:46 执着丶执念 阅读(249) 评论(0) 推荐(0)
摘要:一、视图切换 UITabBarController (分页控制器) 平行管理视图 UINavigationController (导航控制器) 压栈出栈管理视图 模态窗口 二、UITabBarController分页控制器 1. 是为了利用 页签切换视图 设计的控制器 2. 该控制器有一个 控件,用 阅读全文
posted @ 2016-04-04 10:44 执着丶执念 阅读(270) 评论(0) 推荐(0)
摘要:一、UITableView基本介绍 默认的UITableView有2种风格: 1. 2. 中的数据只有 行的概念 , 没有列的概念 ,UITableView的每行数据就是一个 。 自带的 的类型选择有: 二、UITableViewDataSource数据源 数据源的作用就是告诉 , 我该显示什么数据 阅读全文
posted @ 2016-04-04 10:40 执着丶执念 阅读(260) 评论(0) 推荐(0)
摘要:父类UIView方法 objc // autoresizingMask 现在基本弃用,改用autoLayout typedef NS_OPTIONS(NSUInteger, UIViewAutoresizing) { UIViewAutoresizingNone = 0, //不进行自动调整 UIV 阅读全文
posted @ 2016-04-04 10:39 执着丶执念 阅读(330) 评论(0) 推荐(1)
摘要:AppDelegate对象方法 APP启动加载 === UIApplication常用属性和方法 阅读全文
posted @ 2016-04-04 10:38 执着丶执念 阅读(393) 评论(0) 推荐(1)