随笔分类 -  iOS

摘要:现在很多社交、电商、团购应用都引入了地图和定位功能,似乎地图功能不再是地图应用和导航应用所特有的。的确,有了地图和定位功能确实让我们的生活更加丰富多彩,极大的改变了我们的生活方式。例如你到了一个陌生的地方想要查找附近的酒店、超市等就可以打开软件搜索周边;类似的,还有很多团购软件可以根据你所在的位置自动为你推荐某些商品。总之,目前地图和定位功能已经大量引入到应用开发中。今天就和大家一起看一下iOS如何进行地图和定位开发。 定位 地图 阅读全文
posted @ 2014-11-27 08:52 KenshinCui 阅读(197192) 评论(33) 推荐(109) 编辑
摘要:在iOS开发中数据存储的方式可以归纳为两类:一类是存储为文件,另一类是存储到数据库。例如前面IOS开发系列—Objective-C之Foundation框架的文章中提到归档、plist文件存储,包括偏好设置其本质都是存储为文件,只是说归档或者plist文件存储可以选择保存到沙盒中,而偏好设置系统已经规定只能保存到沙盒的Library/Preferences目录。当然,文件存储并不作为本文的重点内容。本文重点还是说数据库存储,做过数据库开发的朋友应该知道,可以通过SQL直接访问数据库,也可以通过ORM进行对象关系映射访问数据库。这两种方式恰恰对应iOS中SQLite和Core Data的内容,在此将重点进行分析: SQLite Core Data FMDB 阅读全文
posted @ 2014-11-06 09:07 KenshinCui 阅读(59005) 评论(29) 推荐(45) 编辑
摘要:大部分应用程序都或多或少会牵扯到网络开发,例如说新浪微博、微信等,这些应用本身可能采用iOS开发,但是所有的数据支撑都是基于后台网络服务器的。如今,网络编程越来越普遍,孤立的应用是没有生命力的。今天就会给大家介绍这部分内容: Web请求和响应 NSURLSession UIWebView 网络状态 阅读全文
posted @ 2014-10-22 08:34 KenshinCui 阅读(81554) 评论(56) 推荐(112) 编辑
摘要:大家都知道,在开发过程中应该尽可能减少用户等待时间,让程序尽可能快的完成运算。可是无论是哪种语言开发的程序最终往往转换成汇编语言进而解释成机器码来执行。但是机器码是按顺序执行的,一个复杂的多步操作只能一步步按顺序逐个执行。改变这种状况可以从两个角度出发:对于单核处理器,可以将多个步骤放到不同的线程,这样一来用户完成UI操作后其他后续任务在其他线程中,当CPU空闲时会继续执行,而此时对于用户而言可以继续进行其他操作;对于多核处理器,如果用户在UI线程中完成某个操作之后,其他后续操作在别的线程中继续执行,用户同样可以继续进行其他UI操作,与此同时前一个操作的后续任务可以分散到多个空闲CPU中继续执行(当然具体调度顺序要根据程序设计而定),及解决了线程阻塞又提高了运行效率。苹果从iPad2 开始使用双核A5处理器(iPhone中从iPhone 4S开始使用),A7中还加入了协处理器,如何充分 阅读全文
posted @ 2014-09-20 23:34 KenshinCui 阅读(123452) 评论(71) 推荐(115) 编辑
摘要:在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看到iOS中如何使用图层精简非交互式绘图,如何通过核心动画创建基础动画、关键帧动画、动画组、转场动画,如何通过UIView的装饰方法对这些动画操作进行简化等。在今天的文章里您可以看到动画操作在iOS中是如何简单和高效,很多原来想做但是苦于没有思路的动画在iOS中将变得越发简单: CALayer Core Animation UIView动画封装 阅读全文
posted @ 2014-09-15 06:29 KenshinCui 阅读(118591) 评论(112) 推荐(201) 编辑
摘要:在iOS中可以很容易的开发出绚丽的界面效果,一方面得益于成功系统的设计,另一方面得益于它强大的开发框架。今天我们将围绕iOS中两大图形、图形绘图框架进行介绍:Quartz 2D绘制2D图形和Core Image中强大的滤镜功能。 Quartz 2D 基本图形绘制 视图刷新 其他图形上下文 Core Image 阅读全文
posted @ 2014-09-06 23:33 KenshinCui 阅读(89873) 评论(69) 推荐(113) 编辑
摘要:iPhone的成功很大一部分得益于它多点触摸的强大功能,乔布斯让人们认识到手机其实是可以不用按键和手写笔直接操作的,这不愧为一项伟大的设计。今天我们就针对iOS的触摸事件(手势操作)、运动事件、远程控制事件等展开学习: iOS事件简介 触摸事件 手势识别 运动事件 远程控制事件 阅读全文
posted @ 2014-09-02 06:33 KenshinCui 阅读(80073) 评论(46) 推荐(70) 编辑
摘要:在iOS开发中视图的切换是很频繁的,独立的视图应用在实际开发过程中并不常见,除非你的应用足够简单。在iOS开发中常用的视图切换有三种,今天我们将一一介绍: UITabBarController UINavigationController 模态窗口 阅读全文
posted @ 2014-08-28 08:27 KenshinCui 阅读(119414) 评论(64) 推荐(80) 编辑
摘要:在iOS开发中UITableView可以说是使用最广泛的控件,我们平时使用的软件中到处都可以看到它的影子,类似于微信、QQ、新浪微博等软件基本上随处都是UITableView。当然它的广泛使用自然离不开它强大的功能,今天这篇文章将针对UITableView重点展开讨论。今天的主要内容包括: 基本介绍 数据源 代理 性能优化 UITableViewCell 常用操作 UITableViewController MVC模式 阅读全文
posted @ 2014-08-23 23:20 KenshinCui 阅读(247602) 评论(115) 推荐(215) 编辑
摘要:UIKit框架中有大量的控件供开发者使用,在iOS开发中不仅可以直接使用这些控件还可以在这些控件的基础上进行扩展打造自己的控件。在这个系列中如果每个控件都介绍一遍确实没有必要,所谓授人以鱼不如授人以渔,这里会尽可能让大家明白其中的原理,找一些典型的控件进行说明,这样一来大家就可以触类旁通。今天我们主要来看一下UIScrollView的内容: UIView UIScrollView 实战--图片浏览器 阅读全文
posted @ 2014-08-15 08:51 KenshinCui 阅读(73124) 评论(48) 推荐(103) 编辑
摘要:终于到了真正接触IOS应用程序的时刻了,之前我们花了很多时间去讨论C语言、ObjC等知识,对于很多朋友而言开发IOS第一天就想直接看到成果,看到可以运行的IOS程序。但是这里我想强调一下,前面的知识是你日后开发IOS的基础,没有那些知识你开发IOS会很痛苦,现在很多开发人员做开发都是一知半解,程序质量确实令人担忧,所以还是希望大家能够熟练掌握前面的内容,开发过程中多思考,彻底理解程序运行的原理、机制。好了言归正传,不管怎么样正式进入IOS开发还是令人兴奋的,今天的内容虽然说是开发预览,其实还是有大量内容要说的: 第一个iOS程序 iOS程序运行过程 文件结构 Storyboard 纯代码实现iOS开发 补充知识点 阅读全文
posted @ 2014-08-04 19:42 KenshinCui 阅读(94468) 评论(81) 推荐(168) 编辑
摘要:我们前面的章节中就一直新建Cocoa Class,那么Cocoa到底是什么,它和我们前面以及后面要讲的内容到底有什么关系呢?Objective-C开发中经常用到NSObject,那么这个对象到底是谁?它为什么又出现在Objective-C中间呢?今天我们将揭开这层面纱,重点分析在IOS开发中一个重要的框架Foundation,今天的主要内容有: Foundation概述 常用结构体 日期 字符串 数组 字典 装箱和拆箱 反射 拷贝 文件操作 阅读全文
posted @ 2014-08-01 19:04 KenshinCui 阅读(97109) 评论(59) 推荐(156) 编辑
摘要:由于ObjC主要基于Smalltalk进行设计,因此它有很多类似于Ruby、Python的动态特性,例如动态类型、动态加载、动态绑定等。今天我们着重介绍ObjC中的键值编码(KVC)、键值监听(KVO)特性: 键值编码KVC 键值监听KVO 阅读全文
posted @ 2014-07-27 11:29 KenshinCui 阅读(63867) 评论(27) 推荐(43) 编辑
摘要:我们知道在程序运行过程中要创建大量的对象,和其他高级语言类似,在ObjC中对象时存储在堆中的,系统并不会自动释放堆中的内存(注意基本类型是由系统自己管理的,放在栈上)。如果一个对象创建并使用后没有得到及时释放那么就会占用大量内存。其他高级语言如C#、Java都是通过垃圾回收来(GC)解决这个问题的,但在OjbC中并没有类似的垃圾回收机制,因此它的内存管理就需要由开发人员手动维护。今天将着重介绍ObjC内存管理: 引用计数器 属性参数 自动释放池 阅读全文
posted @ 2014-07-26 17:10 KenshinCui 阅读(91094) 评论(35) 推荐(51) 编辑
摘要:ObjC的语法主要基于smalltalk进行设计的,除了提供常规的面向对象特性外,还增加了很多其他特性,这一节将重点介绍ObjC中一些常用的语法特性。当然这些内容虽然和其他高级语言命名不一样,但是我们都可以在其中找到他们的影子,在文章中我也会对比其他语言进行介绍,这一节的重点内容如下: 协议protocol 代码块block 分类category 阅读全文
posted @ 2014-07-26 09:52 KenshinCui 阅读(63078) 评论(16) 推荐(38) 编辑
摘要:前面已经简单介绍过ObjC的基础知识,让大家对ObjC有个大致的印象,今天将重点解释ObjC面向对象的特性。ObjC相对于C语言多了面向对象特性,但是ObjC又没有其他面向对象语言那么多语法特性,ObjC本身对面向对象进行了精简。当然这并不代表今天的内容就会少,今天的内容还是相当多的: 类定义 成员变量 方法和属性 self关键字 构造方法 description方法 继承 阅读全文
posted @ 2014-07-22 20:23 KenshinCui 阅读(66600) 评论(33) 推荐(58) 编辑
摘要:前面我们已经用了几章内容进行C语言介绍,当然要通过几篇文章完整的介绍C语言的知识是不太现实的,例如C语言的文件操作、内存申请等我们都没有重点介绍,当然核心知识点基本都已经提到了,后面有时间我们会继续扩充。今天我们正式开始学习Objective-C,以后简称“ObjC”,ObjC是在C语言的基础上加上了一层面向对象的特性,它完全兼容C语言,甚至可以混写C++。它是Mac OS X和IOS的主要开发语言,从IOS发布之后可以说ObjC的地位呈直线上升趋势,当前ObjC已经是仅次于C语言、Java的第三大编程语言。今天我们先简单的看一下C语言的一些基础内容: 第一个ObjC程序 基本数据类型 阅读全文
posted @ 2014-07-22 20:22 KenshinCui 阅读(40944) 评论(10) 推荐(22) 编辑
摘要:在第一节中我们就提到C语言的构造类型,分为:数组、结构体、枚举、共用体,当然前面数组的内容已经说了很多了,这一节将会重点说一下其他三种类型。 结构体 枚举 共用体 阅读全文
posted @ 2014-07-20 18:59 KenshinCui 阅读(25695) 评论(4) 推荐(13) 编辑
摘要:基本上每种语言都要讨论这个话题,C语言也不例外,因为只有你完全了解每个变量或函数存储方式、作用范围和销毁时间才可能正确的使用这门语言。今天将着重介绍C语言中变量作用范围、存储方式、生命周期、作用域和可访问性。 变量作用范围 存储方式 可访问性 阅读全文
posted @ 2014-07-18 20:37 KenshinCui 阅读(24462) 评论(6) 推荐(16) 编辑
摘要:大家都知道一个C程序的运行包括编译和链接两个阶段,其实在编译之前预处理器首先要进行预处理操作,将处理完产生的一个新的源文件进行编译。由于预处理指令是在编译之前就进行了,因此很多时候它要比在程序运行时进行操作效率高。在C语言中包括三类预处理指令,今天将一一介绍: 宏定义 条件编译 文件包含 阅读全文
posted @ 2014-07-18 20:36 KenshinCui 阅读(24822) 评论(8) 推荐(13) 编辑