
iOS开发Step by step
一起从iOS 7开发的最细微的细节开始,逐步走进这个最酷炫的操作系统的开发世界
取次花丛懒回顾
一个爱玩儿爱生活的技术宅;
毕业于上海大学通信与信息工程学院,从事流媒体和视频编解码的研究与开发工作;
研究领域包括视频编解码标准、视频处理和流媒体技术、移动互联网技术等。
展开
-
《Effective Objective-C 2.0》1、熟悉Objective-C
该系列是《Effective Objective-C 2.0——编写高质量iOS与OS X代码的52个有效方法》的读书笔记。第一条:了解Objective-C语言的起源同C++类似,Objective-C也是C语言进行面相对象化的扩展。二者存在一个根本性的区别:C++是一种基于函数调用的语言,运行时执行的代码由编译器决定。某个对象试图调用哪一个函数将在编译过程中确定好。只有在实原创 2015-02-21 20:15:57 · 975 阅读 · 0 评论 -
【iOS7的一些总结】15、单例设计模式
1、基本概念所谓单例,即某一个类始终只能返回一个实例,也可以理解为类本身就是一个实例。单例类通常适合作为某些保存全局应用信息的全局对象,以及部分耗费大量系统资源的重量级对象。通过这种模式可以更简洁地涉及代码,或者提高应用的性能。常用的单例类有NSFileManager、NSUserDefault等。2、创建单例涉及模式的基本步骤(1)创建单例对象的静态实例,初始化为nil;原创 2014-12-11 21:40:42 · 909 阅读 · 0 评论 -
【iOS7的一些总结】14、Block的概念和应用
我们知道,不同对象之间通信的方法比较常用的有原创 2014-11-09 21:38:48 · 1125 阅读 · 0 评论 -
【iOS7的一些总结】13、UIScrollView的概念和基本使用方法
在iOS应用中,使用UIView类来显示一个视图原创 2014-10-31 22:09:42 · 1040 阅读 · 0 评论 -
【iOS7的一些总结】12、使用UIView的一种有效方法
在一个典型的MVC结构中,Model部分负责保存目标数据,View部分主要负责实现数据的界面以及将数据显示出来,二者在Controller的操作下协同工作。在iOS应用中,View的实现主要由UIView及其派生类实现,主要由UILabel、UIImageView等等类来显示不同的信息。这里展示一个demo来说明个人对UIView同数据交互的一种观点,个人意见仅供参考,欢迎讨论。1、首先建原创 2014-09-23 22:30:35 · 1631 阅读 · 0 评论 -
【iOS7的一些总结】11、iOS中的事件
1、原理原创 2014-07-15 21:16:55 · 1162 阅读 · 0 评论 -
【iOS7的一些总结】10、用列表显示内容(下)列表视图控制器UITableViewController
上篇简单总结了如何在一个视图控制器中建立一个列表视图原创 2014-06-21 18:08:52 · 1244 阅读 · 0 评论 -
【iOS7的一些总结】9、用列表显示内容(上):列表视图UITableView
列表视图,顾名思义就是将数据的内容用列表的形式显示在屏幕上的视图。在ios中列表视图以UITableView实现,这个类在实际应用中非常的频繁,但是对于初学者来说不是非常容易理解。这里将UITableView的主要用法总结一下以备查。原创 2014-06-17 08:54:06 · 1974 阅读 · 0 评论 -
【iOS7的一些总结】8、破解UIView中坐标系的秘密:关于UIView中的frame、bound和center
对于刚刚接触iOS开发不久的新手来说,UIView中的frame、bound和center的确容易产生思维的误区,尤其是想要对视图类的bound这个概念若想要理解深入,真的要花一番功夫。在经过一系列查阅参考资料和动手试验之后,终于对这几个概念产生了一些领悟,记录于此可供有同样困惑的同学参考。原创 2014-05-24 22:29:50 · 1568 阅读 · 0 评论 -
【iOS7的一些总结】7、键值观察者模式KVO
1、概念:所谓键值观察者,是一个对象获取其他对象特定属性变化的通知机制。看上去KVO同通知机制类似,而不同点在于KVO没有提供一个所谓的通知中心为所有的观察者提供变化通知,而是当变化发生时,通知直接送达正在观察的对象。2、键值观察者模式的实现:(1)注册观察者:观察对象发送消息到被观察对象,以建立二者的观察关系:- (void)addObserver:(NSObject原创 2014-03-23 22:01:46 · 1326 阅读 · 0 评论 -
【iOS7的一些总结】6、采用NSUSerDefault保存用户默认数据
采用NSUserDefault类可以实现对系统的“default”信息进行操作的方法,简而言之可以理解为一种简单数据的持久化方法。除此之外在iOS中还存在多种保存数据的方法,如sqlite、core data等。NSUserDefault与这些方法相比操作非常简单,但是这个类的实质是一个plist文件,改动任意一个元素也将会load整个文件,因此保存大量信息时效率很低下。所以通常使用这个类保存如用原创 2014-03-09 23:19:06 · 1488 阅读 · 0 评论 -
iOS7应用开发17:摄像、Core Motion和应用实例的代理
1、关于iOS设备上的摄像头原创 2014-02-23 22:08:50 · 1779 阅读 · 0 评论 -
【iOS7的一些总结】5、iOS中的内存管理
我们知道,为了更加方便地处理内存管理问题,将开发人员从繁琐的内存的分配和释放工作中解放出来而专注于产品和逻辑,iOS提供了一种有效的方法,即自动引用计数ARC。采用了ARC之后,绝大部分内存管理的问题就不需要我们继续操心了。但是从另一个方面讲,这个方便的工具也助长了程序员的懒惰情绪,很多新手和学生甚至连引用计数的含义都不清楚。的确,这部分内容相对比较难以理解,不过如果能深刻地领悟之后将会是未来学习原创 2014-02-09 20:31:14 · 2433 阅读 · 0 评论 -
【与iOS开发息息相关的知识】1、iOS应用UI设计入门
几乎所有体验过iPhone、iPad的用户都会为iOS系统精巧的设计、流畅的运行和丰富的应用选择所叹服,因此无论其所为的“市场份额”被Android抢占了多少,亦无论有多少人对iOS7的新界面在不停吐槽,iPhone系列在消费者眼中依然是高端智能手机无可争议的代表作。虽然自iOS系统诞生的第一天起,直到今天乃至未来都不存在开源的可能性,但也正是这种限制性保证了其生态系统的牢固、稳定,同时发布平台A原创 2014-01-13 22:22:09 · 1686 阅读 · 0 评论 -
【iOS7的一些总结】4、Xcode中的代码版本控制
有时候在开发过程中我们经常会遇到这样的问题,即本来编译运行都OK的程序,不知道修改了那个配置,突然变得无法编译,或者运行时出现了各种各样的bug。此时的办法只能是硬着头皮去一个个地修改,或者干脆全部推倒重来。这种方式面临着很严重的问题,即使项目很小,也会耗费掉我们的很大精力,如果项目规模庞大,那我们就彻底不知所措了。所以,在代码中实行版本控制还是非常重要的。我们常用到的版本控制工具有SVN和GIT原创 2014-01-07 23:19:39 · 4313 阅读 · 0 评论 -
【iOS7的一些总结】3、视图控制器ViewControllers之间的数据传递(2)
上文中记录了在手写代码实现UI的情况下,界面切换时不同视图控制器之间数据传递的机制。显示和消除界面使用的函数时presentViewController和dismissViewController函数,数据传递则可以采用代理、通知等机制。本文记录的是使用storyboard实现界面的情况下,采用segue相关的方法实现与上文中相同的功能。原创 2014-01-04 23:44:52 · 1822 阅读 · 0 评论 -
【iOS7的一些总结】2、视图控制器ViewControllers之间的数据传递(1)
这里我们用一个demo来说明ios是如何在视图控制器之间传递重要的参数的。本文先从手写UI来讨论,在下一篇文章中讨论在storyboard中传递数据。首先新建一个空工程,并添加一个根视图控制器类,如下图所示:#在函数didFinishLunchingWithOption中添加几行代码,完成后如下:- (BOOL)application:(UIApplication *)appl原创 2014-01-03 21:26:46 · 2444 阅读 · 0 评论 -
【iOS7的一些总结】1、ARC自动引用计数
对于软件开发而言,引用计数Reference Counting不是一个陌生的概念。在组件对象模型COM中,这就是一个非常重要的概念。每一个对象都维持着一个量称为“引用计数”,标志着有多少“客户”程序在引用当前的对象。只要还有“客户”引用当前对象,也就是引用计数非零,那么这个对象将会保存在内存中不会消失;如果没有任何“客户”引用当前对象了,那引用计数将被设为0,此时该对象将会从内存中释放。通过这种机原创 2013-12-30 23:25:37 · 1784 阅读 · 0 评论 -
iOS7应用开发16:模态segue、文本框、警告、Action Sheet
1、模态segue(Modal Segue):这是除了popover和embed之外的另一种视图控制器切换的方法。当切换到模态视图控制器Modal View Controller出现时,该控制器将占据整个可操作空间知道该控制器消失。与push方法不同的是,该类viewcontroller出现时左上角通常没有返回箭头,而是采用其他方式返回;从某个界面返回会回到之前的界面。建立方法:在之前原创 2013-12-17 22:59:01 · 2170 阅读 · 0 评论 -
iOS7应用开发15:嵌入型segue
同弹出型segue不同,嵌入型segue是另一种视图控制器的切换方式。嵌入型segue将某一个视图控制器的视图(其self.view)嵌入到另一个视图控制器的视图结构中,即让某一个视图控制器的self.view成为另一个视图控制器的self.view的子视图。1、首先建立一个容器视图:container view,类似其他控件,在右侧栏拖入storyboard中即可;2、在容器视图和目标视原创 2013-12-16 22:27:18 · 2174 阅读 · 0 评论 -
iOS7应用开发14、MapKit框架
12135原创 2013-12-16 21:36:56 · 1640 阅读 · 0 评论 -
iOS7应用开发13:应用类UIApplication、网络活动指示器、地图
1、应用类UIApplication:UIApplication为应用提供了一个共享的实例,可以提供一些全局信息。调用方法如下:UIApplicaiton *myApplication = [UIApplication sharedApplication];2、网络活动指示器:这是UIApplication的一个bool类型的property。如果设为YES,则状态栏会出现网络活动指示原创 2013-12-14 17:45:29 · 1362 阅读 · 0 评论 -
iOS7应用开发12:Core Data
Core Data:一种数据库机制,可以用于保存应用中需要永久保存的数据,是一种面向对象的数据库,在ios中应用极为广泛。应用方法:(1)在xcode中建立一个visual mapping,即在新建文件中选择Core Data->Data Model。在Data Model文件中添加Entity,在Entity中添加attribute并设置类型。各个entity可以通过ctrl+拖原创 2013-12-09 22:09:15 · 2246 阅读 · 0 评论 -
iOS7应用开发11:列表视图TableView、iPad应用
1、列表视图TableView用于在一个一维的列表中显示数据的方法,是滚动条视图的派生来;有动态和静态两种类型,也可以设置为plain和grouped两种风格;通过data source和delegate来设置不同的显示数据和表格属性。plain类型表格的组成:列表头table header,分段section,列表尾table footer;每一个section由一个section he原创 2013-12-08 19:49:16 · 2112 阅读 · 0 评论 -
iOS7应用开发10:blocks、多线程、滚动条视图
1、关于多线程:线程的概念,可以参考《操作系统》中“进程与线程”等部分的解释,同ios中线程的概念应大同小异。队列(queue):可看做是blocks等待被某个线程执行的等候区;同线程类似,队列也存在主队列(main queue)用于处理交互方面的操作;其他队列可按需创建以完成某项特定工作。如何执行另一个队列中的block,参考如下C语言代码:dispatch_queue_t qu原创 2013-12-07 07:54:59 · 1762 阅读 · 1 评论 -
iOS7应用开发9:autolayout自动布局
【时间太紧张,追课的过程中感觉压力很大,时间不够用的问题相当严重。想单靠业余时间自学一门技术果真不是一件容易的事儿,就拿上节课的animation来说吧,文章里基本上只能记录了一下课程的大纲,很多具体的内容都完全没弄清楚,demo也只是完全按照课上的演示逐句敲好。等赶上进度后,肯定是要回来复习的,届时会尽可能细致地研究ios开发的细节问题。】1、自动布局的概念:自动布局会在不同的设备屏幕尺原创 2013-12-05 21:14:02 · 4746 阅读 · 0 评论 -
iOS7应用开发8:协议、程序块及动画效果
1、协议Protocol协议定义了一组方法,可用于处理id类型的对象。原创 2013-11-30 21:04:21 · 1289 阅读 · 0 评论 -
iOS7应用开发7:自定义视图、手势操作
1、视图:#屏幕上表示某一个矩形区域;某个视图只能有一个父视图,但是可能有多个子视图;#UIWindow:屏幕视图,在整个视图结构体系的最上层,仅适用于ios应用;#添加视图的函数:- (void)addSubview:(UIView *)aView;- (void)removeFromSuperview;原创 2013-11-24 18:20:33 · 1849 阅读 · 0 评论 -
iOS7应用开发6:UINavigation, UITabbar控制器的多态性
1、前期所实现的PlayingCard游戏,其View Controller只能适应PlayingCard这一种游戏规则。而将createDeck函数修改为返回一个nil后,整个View Controller与PlayingCard就没有关系了(同时也就没法运行了),成为了一种抽象的概念(类似于C++中的抽象类),实际的控制器必须派生这个类才能实现自身的功能。新建一个View Controll原创 2013-11-22 23:11:26 · 2691 阅读 · 0 评论 -
iOS7应用开发5、视图控制器View Controller及其生命周期
1、UITextView:该类与Label类类似,可显示多行,可以编辑内容,可以滚动查看内容;包含属性NSTextStorage *textStorage,该类是NSMutableAttributedString的基类;修改该属性可以自动更新UITextView的内容;包含属性UIFont *font,用于设置所有字符的字体;NSTextContainer *textContain原创 2013-11-15 23:26:11 · 1893 阅读 · 0 评论 -
iOS7应用开发4、Foundation框架
1、动态绑定:id类型的对象,表示指向未知类型对象的指针;指向对象的实际类型在运行时指定。在使用时,注意check该对象是否响应调用的方法(respondsToSelector)。可以将一个静态类型的对象付给id类对象。[NSArray firstObject]等函数返回值本质上就是id类型。id本身就是指针类型,所以不存在id *pObject这种写法。2、原创 2013-11-12 23:22:34 · 1616 阅读 · 0 评论 -
iOS7应用开发3、Objective-C
...原创 2013-11-10 16:05:15 · 1935 阅读 · 0 评论 -
iOS7应用开发2、关于新版的IDE:XCode 5
...原创 2013-11-02 21:17:32 · 2244 阅读 · 0 评论 -
iOS7应用开发1、菜鸟那点儿事儿
序:今天开始新开一个坑,作为一个准备了许久却依然摆脱不了24k纯菜鸟身份的程序员,跟随Stanford的世界未来精英们一起学习iOS7应用开发的相关知识,同时也是为了自己以后的业余项目做准备,提升自己的工作筹码。我所follow的教程来自itunes上面斯坦福大学的公开课程《Developing iOS 7 Apps for iPhone and iPad》,很容易就能找到。这些博客除了作为追课过原创 2013-10-30 23:58:20 · 2180 阅读 · 0 评论