摘要: 1 飞机航班查询软件1.1 问题NSURLConnection是IOS提供的用于处理Http协议的网络请求的类,可以实现同步请求也可以实现异步请求,本案例使用NSURLConnection类实现一个飞机航班查询的工具软件,采用GET的同步请求方式访问网络数据,如图-1所示:图-11.2 方案首先创建... 阅读全文
posted @ 2015-12-15 21:22 A蜗牛为梦想而生A 阅读(351) 评论(0) 推荐(0)
摘要: 1 局域网群聊软件1.1 问题UDP协议将独立的数据包从一台计算机传输到另外一台计算机,但是并不保证接受方能够接收到该数据包,也不保证接收方所接收到的数据和发送方所发送的数据在内容和顺序上是完全一致的。UDP广播就是建立于UDP协议上的数据传输,当网络中的某一台计算机向交换机或路由发送一个广播数据时... 阅读全文
posted @ 2015-12-15 21:20 A蜗牛为梦想而生A 阅读(340) 评论(0) 推荐(0)
摘要: 1 简易的聊天工具1.1 问题Socket的英文原义是孔或者插座的意思,通常也称作套接字,用于描述IP地址和端口,是一个通信链的句柄,本案例使用第三方Socket编程框架AsyncSocket框架实现一个简易的聊天工具,并且能够进行文件传输,由于没有服务器本案例将服务器端和客户端写在一个程序中,如图... 阅读全文
posted @ 2015-12-15 21:17 A蜗牛为梦想而生A 阅读(203) 评论(0) 推荐(0)
摘要: 1 使用GCD实现打地鼠1.1 问题GCD是Grand Central Dispatch中央任务分发中心的简称,是苹果公司为多核的并行运算提出的解决方案。GCD在工作时会自动利用更多的处理器核心,以充分利用更强大的机器,它是基于C语言的API。本案例使用GCD实现打地鼠小游戏,在界面随机产生mous... 阅读全文
posted @ 2015-12-15 21:15 A蜗牛为梦想而生A 阅读(172) 评论(0) 推荐(0)
摘要: 1 使用NSThread实现打地鼠1.1 问题NSThread是ios提供的轻量级的多线程解决方案,但是需要自己管理线程的生命周期、线程同步等。本案例使用NSThread实现一个打地鼠的小游戏,在界面随机产生mouse(继承至UIButton),以及点击mouse消失得分等功能,如图-1所示:图-1... 阅读全文
posted @ 2015-12-15 21:13 A蜗牛为梦想而生A 阅读(182) 评论(0) 推荐(0)
摘要: 1 使用归档的方式保存文件1.1 问题归档是任何对象都可以实现的更常规的方式,可以进行归档的对象需要实现NSCoding协议,而且每个实例变量应该是基本数据类型或者是实现NSCoding协议的某个类的实例。本案例使用归档NSKeyedArchiver和反归档NSKeyedUnarchiver将TRP... 阅读全文
posted @ 2015-12-15 21:11 A蜗牛为梦想而生A 阅读(576) 评论(0) 推荐(0)
摘要: 1 使用NSFilehandle进行数据读写1.1 问题NSFileManager用于实现对文件的操作,而NSFileHandle是IOS提供的对文件内容(二进制数据)进行操作的类,例如数据的读写、数据追加、数据拷贝等。本案例演示使用NSFileHandle对文件数据进行基本的读写操作。1.2 方案... 阅读全文
posted @ 2015-12-15 21:03 A蜗牛为梦想而生A 阅读(316) 评论(0) 推荐(0)
摘要: 1 NSData和NSMutableData的基本使用1.1 问题NSData类是IOS提供的用于以二进制的形式操作文件数据的类,NSData有两个常用的属性length和bytes,length表示字节的数量,bytes起始字节的位置是一个指针类型,本案例演示NSData和NSMutableDat... 阅读全文
posted @ 2015-12-15 20:59 A蜗牛为梦想而生A 阅读(604) 评论(0) 推荐(0)
摘要: 1 使用通知中心发送消息1.1 问题当一个对象需要向多个接受者发送消息的,或者不用知道消息的接收者是谁,就可以使用IOS提供的NSNotificationCenter通知中心,本案例使NSNotificationCenter通知中心改变界面上所有按钮的颜色,如图-1所示:图-11.2 方案首先在创建... 阅读全文
posted @ 2015-12-15 20:57 A蜗牛为梦想而生A 阅读(384) 评论(0) 推荐(0)
摘要: 1 使用UIDynamicAnimator对集合视图进行布局1.1 问题UIKit Dynamic动力模型一个非常有趣的用途就是影响集合视图的布局,可以给集合视图的布局添加各种动力行为,使其产生丰富多彩的效果,本案例使用UIDynamicAnimator对集合视图进行布局,实现一个弹性列表,如图-1... 阅读全文
posted @ 2015-12-15 20:54 A蜗牛为梦想而生A 阅读(349) 评论(0) 推荐(0)
摘要: 1 给视图添加重力效果1.1 问题当给某个视图加上UIGravityBehavior重力行为之后,这个视图就具有重力,会如同掉入了无底洞,不断地下坠,不断的加速,本案例使用UIGravityBehavior重力行为给imageView添加重力行为,如图-1所示:图-11.2 方案首先在创建好的Xco... 阅读全文
posted @ 2015-12-15 20:49 A蜗牛为梦想而生A 阅读(374) 评论(0) 推荐(0)
摘要: 1 演示UIImage制作的动画1.1 问题UIImage动画是IOS提供的最基本的动画,通常用于制作一些小型的动画,本案例使用UIImage制作一个小狗跑动的动画,如图-1所示:图-11.2 方案首先在创建好的Xcode项目的Storyboard中拖放一个ImageView控件,并关联成TRVie... 阅读全文
posted @ 2015-12-15 20:46 A蜗牛为梦想而生A 阅读(723) 评论(0) 推荐(0)
摘要: 1 使用Autoresizing的方式进行界面布局1.1 问题Autoresizing是IOS旧版的自动布局技术,现在仍然被很多企业使用。本案例将学习如何使用Autoresizing完成界面的布局,如图-1、图-2所示:图-1图-21.2 方案首先创建一个SingleViewApplication项... 阅读全文
posted @ 2015-12-15 20:43 A蜗牛为梦想而生A 阅读(165) 评论(0) 推荐(0)
摘要: 1 使用触控实现一个简易的画板1.1 问题触控(Touch)是一个UITouch类型的对象,当用户触摸了屏幕上的视图时自动被创建,通常使用触控实现绘图、涂鸦、手写等功能。本案例使用触控实现一个简易的画板,可以在画板上勾画出一条线,如图-1所示:图-11.2 方案首先在创建好的SingleViewAp... 阅读全文
posted @ 2015-12-15 20:40 A蜗牛为梦想而生A 阅读(753) 评论(0) 推荐(0)
摘要: 1 使用点击手势实现单击和双击手势1.1 问题UITapGestureRecognizer点击手势,通常用于单击和双击某个视图。本案例使用UITapGestureRecognizer点击手势实现单击和双击,如图-1、图-2所示:图-1图-21.2 方案首先创建Xcode项目,在Storyboard中... 阅读全文
posted @ 2015-12-15 20:36 A蜗牛为梦想而生A 阅读(537) 评论(0) 推荐(0)
摘要: 1 TMessage项目的输入面板界面1.1 问题IOS中经常会使用到九切片技术对图片进行处理。本案例使用九切片技术完成Tmessage项目的输入板界面,如图-1所示:图-11.2 方案首先创建一个SingleViewApplication项目,在Storyboard中根据界面需求拖放控件到场景中,... 阅读全文
posted @ 2015-12-15 20:32 A蜗牛为梦想而生A 阅读(584) 评论(0) 推荐(0)
摘要: 1 绘制基本图形1.1 问题IOS中进行绘制比较方便,只需要在视图类(UIView及其子类)中重写drawRect方法,将绘制代码要写在该方法中即可,此方法会在视图显示前自动调用。本案例重写视图类中的drawRect方法,绘制一个简单的图形,如图-1所示:图-11.2 方案首先在创建好的Xcode项... 阅读全文
posted @ 2015-12-15 20:28 A蜗牛为梦想而生A 阅读(426) 评论(0) 推荐(0)
摘要: 1 创建动态TableView1.1 问题动态表视图就是显示多少分区,多少行以及每一行的显示内容都是根据数据源来决定。之前我们学过用xib展示动态表视图,本案例将学习如何使用Storyboard展示动态表视图,如图-1所示:图-11.2 方案首先创建一个SingleViewApplication项目... 阅读全文
posted @ 2015-12-15 20:24 A蜗牛为梦想而生A 阅读(509) 评论(0) 推荐(0)
摘要: 1 使用Storyboard完成各项常见功能1.1 问题故事板Storyboard是IOS5开始引入的一个新的系统,将多个视图文件(类似xib文件)集中到一个单独的可视化工作区间,负责创建和管理所有的界面及界面间的跳转,每一个Storyboard中的单个视图文件称之为场景Scene,可以使用Xcod... 阅读全文
posted @ 2015-12-15 20:21 A蜗牛为梦想而生A 阅读(9878) 评论(0) 推荐(0)
摘要: 1 创建集合视图,设置相关属性以满足要求1.1 问题集合视图控制器UIConllectionViewController是一个展示大量数据的控制器,系统默认管理着一个集合视图UICollectionView,功能几乎和UITableViewController差不多,能够以多行多列的形式展示数据。集... 阅读全文
posted @ 2015-12-15 20:18 A蜗牛为梦想而生A 阅读(508) 评论(0) 推荐(0)
摘要: 1 乐库的设置界面1.1 问题tableView分为静态(static)和动态(dynamic),之前使用的都是动态的tableView,表视图的有多少分区、有多少行以及每一行显示的内容都不是固定的,都由数据模式来决定。而静态的tableView有多少分区、有多少行以及每一行显示的内容都是固定不变的... 阅读全文
posted @ 2015-12-15 20:14 A蜗牛为梦想而生A 阅读(472) 评论(0) 推荐(0)
摘要: 1 tableView的编辑模式1.1 问题表视图可以进入编辑模式,当进入编辑模式就可以进行删除、插入、移动单元等操作,本案例还是使用联系人界面学习如何进入编辑模式,以及进入编辑模式之后的删除、插入、移动等操作,如图-1所示:图-11.2 方案首先还是创建一个带导航的TRContactTableVi... 阅读全文
posted @ 2015-12-15 20:11 A蜗牛为梦想而生A 阅读(465) 评论(0) 推荐(0)
摘要: 1 创建一个UITableViewController并展示简单数据1.1 问题有很多移动客户端的应用都是采用表的形式来展示数据,因为表视图能使数据看起来更规整、更有调理,比如微信界面就是使用的表视图,如图-1所示:图-1在IOS中表视图是非常重要的视图,类型名称为UITabelViewContro... 阅读全文
posted @ 2015-12-15 20:06 A蜗牛为梦想而生A 阅读(2266) 评论(0) 推荐(1)
摘要: 1 在界面上以各种模式显示图片1.1 问题在ios开发中经常需要展示图片以满足需求和美化界面,本案例将学习如何以代码的方式使用UIImageView视图控件来展示图片,如图-1所示:图-11.2 方案UIImageView是UIView的子类,主要功能是用来展示图片,首先创建一个带有xib的Sing... 阅读全文
posted @ 2015-12-15 20:02 A蜗牛为梦想而生A 阅读(508) 评论(0) 推荐(0)
摘要: 1 VC之间的跳转和正向传值1.1 问题在实际的开发中更多的应用都会有多个页面组成,每个页面展示不同的信息,页面之间的跳转是由视图控制器来实现的,本案例实现两个页面的之间的跳转和页面之间的正向传值,如图-1所示:图-11.2 方案首先使用Xcode创建一个SingleViewApplication项... 阅读全文
posted @ 2015-12-15 20:00 A蜗牛为梦想而生A 阅读(843) 评论(0) 推荐(0)
摘要: 1 翻牌游戏1.1 问题根据苹果MVC设计模式的思想原则实现一个简单的翻牌游戏,功能如下:1)界面上随机摆放12张背面朝上的纸牌,界面效果如图-1所示:图- 12)点击纸牌可以使纸牌翻页,翻牌后进行数字和花色的匹配,如果数字一样得4分,花色一样得1分;3)在界面的左下角有一个记录得分的标签,界面如图... 阅读全文
posted @ 2015-12-15 19:57 A蜗牛为梦想而生A 阅读(209) 评论(0) 推荐(0)
摘要: 1 使用事件方法参数获取事件源对象1.1 问题通过xib构建如图-1所示界面,通过关联Button的IBAction方法来改变Label的text。图- 1当点击Button时可以改变Label的text,如图-2所示:图- 21.2 方案首先跟之前的案例一样用Xcode创建一个带有xib的项目,在... 阅读全文
posted @ 2015-12-15 19:56 A蜗牛为梦想而生A 阅读(361) 评论(0) 推荐(0)
摘要: 1 创建并运行第一个App1.1 问题使用Xcode创建一个App项目,该应用实现功能在界面上显示Hello World标签,在模拟器中的运行结果如图-1所示:图-11.2 方案分析图-1,首先使用Xcode创建一个Single ViewApplicaton应用,起名为MyFirstApp,如图-2... 阅读全文
posted @ 2015-12-15 19:54 A蜗牛为梦想而生A 阅读(394) 评论(0) 推荐(0)
摘要: 1 使用Block方式,对学生对象进行排序。1.1 问题在iOS4.0+ 和Mac OS X 10.6+ 中添加了Block概念,以对C语言进行扩展。在Block中可以定义参数列表、返回类型,还可以获取被定义在的作用域内的局部变量的值,并且能修改使用__block修饰的局部变量的值。Block本质上... 阅读全文
posted @ 2015-12-15 19:53 A蜗牛为梦想而生A 阅读(190) 评论(0) 推荐(0)
摘要: 1 重构学生与学校的练习1.1 问题本案例要求用字典解决下述问题。问题是:有一个学校,该学校有两个学院,每个学院中又有两个班级,而在每个班级中有两名学生。现在作如下要求:1)显示所有学生的信息。2)只显示姓名为“zhangsan”的学生的信息。3)只显示年龄为18岁的学生的信息。4)如果每个学生有本... 阅读全文
posted @ 2015-12-15 19:52 A蜗牛为梦想而生A 阅读(252) 评论(0) 推荐(0)
摘要: 1 创建五个学生对象,放入数组并遍历1.1 问题创建一个自定义类TRStudent,为该类生成五个对象。把这五个对象存入一个数组当中,然后遍历数组。1.2 步骤实现此案例需要按照如下步骤进行。步骤一:定义类TRStudent首先,在Day03工程中新添加TRStudent.h文件,用于定义新的类TR... 阅读全文
posted @ 2015-12-15 19:51 A蜗牛为梦想而生A 阅读(573) 评论(0) 推荐(0)
摘要: 1 基本数据类型的封装1.1 问题我们所学的所有基本数据类型,如int、float、double、char等,都不是对象,不能向它们发送消息。然而,在Foundation中的许多类,如NSArray,都要求使用对象作为其值,因此不能将任何基本数据类型直接存储到这些类的对象当中。要存储任何基本数据类型... 阅读全文
posted @ 2015-12-15 19:50 A蜗牛为梦想而生A 阅读(300) 评论(0) 推荐(0)
摘要: 1 重构Student和Book类1.1 问题本案例需要创建一个Book类,类中有一个整型price属性,用于记录书的价格。还需要创建一个Student类,类中有两个带参属性,它们是整型的年龄age和类Book类型的book,分别用于存储学生的年龄和学生正在学习的书,book属性带有copy参数,并... 阅读全文
posted @ 2015-12-15 19:48 A蜗牛为梦想而生A 阅读(242) 评论(0) 推荐(0)
摘要: 1 分类练习1.1 问题分类是Objective-C提供的一种类的补充和扩展方法,补充和扩展的每个部分被称为分类,分类本质上是类的一部分。提出分类概念的作用有两个:一是分解大的代码,提高程序可读性;另一个是给已有的类添加新方法。1.2 方案定义一个TRMyClass类,在类中包含一个属性proper... 阅读全文
posted @ 2015-12-15 19:46 A蜗牛为梦想而生A 阅读(306) 评论(0) 推荐(0)
摘要: 1 编写交通工具程序1.1 问题本案例需要创建一个TRTransportation类,类中有一个方法叫print的方法,该方法默认输出 “显示交通工具信息”,这个类作为父类,派生出三个子类TRTaxi的士类、TRBus巴士类和TRBike 自行车类。TRTaxi的士类覆盖了父类的print方法,改成... 阅读全文
posted @ 2015-12-15 19:41 A蜗牛为梦想而生A 阅读(345) 评论(0) 推荐(0)
摘要: 1 MRC练习1.1 问题引用计数是Objective-C语言采用的一种内存管理技术,当一个对象被创建在堆上后,该对象的引用计数就自动设置为1,如果在其它对象中的对象成员需要持有这个对象时,则该对象的引用计数被加上1,此时如果该对象被释放,内存管理程序将首先把该对象的引用计数减1,然后判断该对象的引... 阅读全文
posted @ 2015-12-15 19:39 A蜗牛为梦想而生A 阅读(312) 评论(0) 推荐(0)
摘要: 1 重构Point2类1.1 问题本案例使用初始化方法重构Point2类,类中有横坐标x、纵坐标y两个属性,并且有一个能显示位置show方法。在主程序中创建两个Point2类的对象,设置其横纵坐标,并将它们显示出来。1.2 步骤实现此案例需要按照如下步骤进行。步骤一:定义类Point2由于是对Poi... 阅读全文
posted @ 2015-12-15 19:08 A蜗牛为梦想而生A 阅读(551) 评论(0) 推荐(0)
摘要: 1 第一个OC控制台程序1.1 问题Xcode是苹果公司向开发人员提供的集成开发环境(非开源),用于开发Mac OS X,iOS的应用程序。其运行于苹果公司的Mac操作系统下。本案例要求使用集成开发工具Xcode编写OC的HelloWorld程序,在Xcode的控制台中,该程序的输出结果如下图:图-... 阅读全文
posted @ 2015-12-15 19:07 A蜗牛为梦想而生A 阅读(384) 评论(0) 推荐(0)
摘要: 1 输入一个整数,求春夏秋冬1.1 问题在实际应用中,有的变量只有几种可能取值。如人的性别只有两种可能取值,星期只有七种可能取值。在 C 语言中对这样取值比较特殊的变量可以定义为枚举类型。所谓枚举是指将变量的值一一列举出来,变量只限于列举出来的值的范围内取值。本案例需要使用交互的方式判断:用户从控制... 阅读全文
posted @ 2015-12-15 19:04 A蜗牛为梦想而生A 阅读(689) 评论(0) 推荐(0)
摘要: 1 输入一个姓名,判断是否是五虎上将。1.1 问题本案例需要使用交互的方式判断:用户从控制台输入一个名字,由程序判断该名字是否在五虎上将的名单中。五虎上将的名单是:GuanYu、ZhangFei、ZhaoYun、MaChao、HuangZhong。如果名字在名单中,程序交互过程如图-1所示:图-1如... 阅读全文
posted @ 2015-12-15 19:03 A蜗牛为梦想而生A 阅读(501) 评论(0) 推荐(0)
摘要: 1 使用程序来模拟放球、取球的问题1.1 问题栈是一种特殊的线性表,它的逻辑结构和线性表相同,只是其运算规则较线性表有更多的限制,故又称为运算受限的线性表。栈的定义是限制仅在表的一端进行插入和删除运算的线性表。1) 通常称插入、删除的这一端为栈顶(Top),另一端称为栈底(Bottom)。2) 当表... 阅读全文
posted @ 2015-12-15 19:02 A蜗牛为梦想而生A 阅读(330) 评论(0) 推荐(0)
摘要: 1 求数组元素的最大值1.1 问题创建程序,实现查询数组中最大值的功能,需求为:创建一个长度为10的数组,数组内放置10个0~99之间(包含0,包含99)的随机数作为数组内容,要求查询出数组中的最大值,并打印显示在界面上,控制台效果如图-1所示:图-11.2 方案首先,此方案中,需要创建一个长度为1... 阅读全文
posted @ 2015-12-15 19:01 A蜗牛为梦想而生A 阅读(684) 评论(0) 推荐(0)
摘要: 1 完成命令解析程序1.1 问题有命令解析程序,该程序提供三个功能选项供用户选择,用户选择某功能后,程序在界面上输出用户所选择的功能名称。程序的交互效果如图-1所示:图-1由上图可以看出,程序提供的功能有:显示全部记录、查询登录记录和退出。如果用户在控制台输入1,则表示用户选择的功能为“显示全部记录... 阅读全文
posted @ 2015-12-15 18:58 A蜗牛为梦想而生A 阅读(340) 评论(0) 推荐(0)
摘要: 1 年龄判断程序1.1 问题本案例需要使用交互的方式判断年龄的范围:用户从控制台输入一个年龄,由程序判断该年龄是否在18~50岁之间。程序交互过程如图-1所示:图-11.2 步骤实现此案例需要按照如下步骤进行。步骤一:定义变量变量age,用于保存用户从控制台输入的年龄。代码如下:#include i... 阅读全文
posted @ 2015-12-15 18:56 A蜗牛为梦想而生A 阅读(484) 评论(0) 推荐(0)
摘要: 1 变量使用常用错误汇总1.1 问题在我们使用变量的过程中,会遇到一些问题,在此将这些问题进行汇总,在今后使用的过程中,不出错。即使出现错误也可以很快地找到问题所在。1.2 方案变量在使用的过程中,常见问题总结为如下几点:1) 使用未经声明的变量。2) 使用不符合C标识符命名规则的变量。3) 使用未... 阅读全文
posted @ 2015-12-15 18:54 A蜗牛为梦想而生A 阅读(1055) 评论(0) 推荐(0)
摘要: 1 在“桌面”上创建一个文件夹Test1.1 问题在桌面上创建一个文件夹,我们需要了解Max OS X操作系统的操作方法。对于Max OS X操作系统,有两种方法可以在桌面上创建文件夹,一种方法是通过图形化操作界面创建,另一种是在“终端”程序中,通过命令行方式创建。第一种方法比较简单,它是通过鼠标来... 阅读全文
posted @ 2015-12-15 18:51 A蜗牛为梦想而生A 阅读(519) 评论(0) 推荐(0)