- 博客(44)
- 资源 (113)
- 收藏
- 关注
原创 iOS基础 - 数据库CoreData
一、iOS应用数据存取的常用方式XML属性列表 —— PListNSKeyedArchiver 归档Preference(偏好设置)SQLite3 Core Data二、Core Data简介Core Data 是iOS SDK 里的一个很强大的框架,允许程序员以面向对象的方式储存和管理数据。使用Core Data框架,程序员可以很轻松有效地通过面向对象的接口管理数据
2014-02-10 22:25:24
625
1
原创 iOS基础 - 数据库-SQLite
一、iOS应用数据存取的常用方式XML属性列表 —— PListNSKeyedArchiver 归档Preference(偏好设置)SQLite3 Core Data(以面向对象的方式操作数据库SQLite)二、数据库简介(文件)数据库(Database)是按照数据结构来组织、存储和管理数据的仓库数据库的种类:关系型数据库(主流)对象型数据库文档型数据库
2014-02-09 22:12:44
573
1
原创 iOS基础 - 内存分析
一、内存的重要性程序是否可用的最根本的制约因素。十分影响用户体验。程序的crash有很多情况都是内存的原因。二、iOS平台内存警告机制iOS系统不支持虚拟内存,一旦出现内存不足的情况,iOS系统会通知所有app,无论是前台的还是挂起的,都会收到memory warning的通知,一旦app收到memory warning的通知就应该回收占用内存较大的对象。内存警告测试方法:
2014-02-08 22:07:36
685
1
原创 iOS基础 - iOS静态库
一、什么是库?库是共享程序代码的方式,一般分为静态库和动态库。二、静态库与动态库的区别?静态库:链接时完整地拷贝至可执行文件中,被多次使用就有多份冗余拷贝。动态库:链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存。三、iOS里静态库形式?.a和.framework四、iOS里动态库形式?.dylib和.framewor
2014-02-07 22:11:46
670
原创 iOS基础 - 单元测试
单元测试(unit testing):对软件中最小可测试单元进行检查和验证。一般面向过程的语言中,基本单元为函数,面向对象的语言中,基本单元通常是类,其实对于一个手机上的app来说基本单元也可以是一个UI页面。平时我们写了一个函数,执行以下看是否正常工作,也属于单元测试。 测试用例(test case):对测试任务的描述,体现测试方案、方法、技术和策略。内容包括测试目标、测试环境、输入数据
2014-01-24 18:55:59
519
原创 iOS基础 - 相片浏览器
一、需求分析点击照片从当前照片位置动画弹出新的视图控制器显示选中的照片,新的视图控制器为全屏显示,背景为黑色,再次点击照片动画缩小至当前选中的照片位置,双击放大照片,如果已经放大则缩小,在新的视图控制器中滑动手指,可以在照片之间切换,当前显示的照片支持手指捏合手势,放大或缩小照片,照片切换时,在照片的下方显示标签提示当前显示的照片数量及照片总数。性能优化:点击照片从当前照片位置动画弹出新的
2014-01-23 22:59:23
726
原创 iOS基础 - 瀑布流
一、瀑布流简介瀑布流,又称瀑布流式布局。是比较流行的一种网站页面布局,视觉表现为参差不齐的多栏布局,随着页面滚动条向下滚动,这种布局还会不断加载数据块并附加至当前尾部。最早采用此布局的网站是Pinterest,逐渐在国内流行开来。国内大多数清新站基本为这类风格二、瀑布流特点l 琳琅满目:整版以图片为主,大小不一的图片按照一定的规律排列l 唯美:图片的风格以唯美的图片为主l 操作
2014-01-22 23:31:15
538
原创 iOS基础 - NSURLSession
使用URLSession所有的网络访问都是有缓存的,缓存文件自动保存在tmp文件夹中,URLSession本身实现的时候,就是少量多次的!l 使用defaultSessionConfiguration配置建立的会话退出到首页时,任务会被自动挂起重新进入应用时,任务会自动继续l 使用backgroundSessionConfiguration配置建立的会话在退出首页时,后
2014-01-21 22:41:36
417
原创 iOS基础 - 第三方网络框架
一、iOS网络层次结构基于iOS提供API实现上传文件和断点续传的思路常用iOS第三方网路框架简介AFNetworking(AFN)ASIHTTPRequest(ASI)另外一个常用框架SSZipArchive二、iOS网络编程层次结构Cocoa层(NSURL,Bonjour,Game Kit,WebKit)Core Foundation层(基于 C的
2014-01-20 23:13:47
669
原创 iOS基础 - XML & JSON
一、HTML & XMLHTML 是用来描述网页的一种语言HTML 指的是超文本标记语言 (Hyper Text Markup Language)HTML 不是一种编程语言,而是一种标记语言 (markup language)HTML 被设计用来显示数据HTML5是下一代的 HTML增加了用于绘画的 canvas 元素用于媒介回放的 video 和audio
2014-01-19 23:18:17
357
原创 iOS基础 - 多媒体
一、播放视频iOS提供了叫做MPMoviePlayerController、MPMoviePlayerViewController的两个类,可以用来轻松播放视频YouTobe就是用MPMoviePlayerController实现的MPMoviePlayerViewController只能全屏播放视频上述两个类都定义在了MediaPlayer框架中二、MPMoviePlayer
2014-01-19 23:14:37
395
原创 iOS基础 - UIWebView
一、UIWebView简介是iOS内置的浏览器控件,可以浏览网页、打开文档等能够加载html/htm、pdf、docx、txt等格式的文件系统自带的Safari浏览器就是通过UIWebView实现的二、关于MIME typeMIME的英文全称是“Multipurpose Internet Mail Extensions” 多用途互联网邮件扩展,是一个互联网标准,最早应用于电子邮
2014-01-18 22:43:59
443
原创 iOS基础 - iOS网络基础
一、网络访问的四个步骤l 第一步:确定地址URLl 第二步:建立请求l 第三步:建立并启动连接l 第四步:连接完成,处理结果备注:URL,统一资源定位符(URL,英语Uniform Resource Locator的缩写)也被称为网页地址,是因特网上标准的资源的地址。iOS中资源地址一般都是使用NSURL描述的,包括:网页、本地文件、音频、视频、电话、短信等二、iOS网
2014-01-18 22:39:48
366
原创 iOS基础 - 多线程线程
一、多线程的应用l 充分发挥多核处理器的优势,并发(同时执行)执行任务让系统运行的更快、更流畅二、进程与线程概念l 一个运行的程序就是一个进程或者叫做一个任务l 一个进程至少包含一个线程,线程是程序的执行流l iOS程序启动时,在创建一个进程的同时, 会开始运行一个线程,该线程被称为主线程l 主线程是其他线程最终的父线程,所有界面的显示操作必须在主线程进行!!!l 后台
2014-01-18 00:53:38
364
原创 iOS基础 - 触摸事件&手势识别
==================================================================一、触摸事件&手势识别1> 4个触摸事件,针对视图的2> 6个手势识别(除了用代码添加,也可以用Storyboard添加)附加在某一个特定视图上的,其中需要注意轻扫手势通常会附加到根视图上。* 大部分操作,都会在touchesBegan事件中处理,
2014-01-16 23:27:03
353
原创 iOS基础 - UIDynamic
一、UIKit动力学UIKit动力学最大的特点是将现实世界动力驱动的动画引入了UIKit,比如重力,铰链连接,碰撞,悬挂等效果,即将2D物理引擎引入了UIKit注意:UIKit动力学的引入,并不是为了替代CA或者UIView动画,在绝大多数情况下CA或者UIView动画仍然是最优方案,只有在需要引入逼真的交互设计的时候,才需要使用UIKit动力学它是作为现有交互设计和实现的一种补充其他
2014-01-16 23:19:17
774
原创 iOS基础 - 核心动画
一、核心动画l 核心动画基本概念l 基本动画l 关键帧动画l 动画组l 转场动画l Core Animation是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍!l 使用它需要先添加QuartzCore.framework和引入对应的框架l 开发步骤:初始化一个动画对象(CAAnimation)并设置一些动画相关属性CALa
2014-01-15 21:35:36
463
原创 iOS基础 - 文本属性Attributes
NSKernAttributeName: 调整字句 kerning 字句调整NSFontAttributeName : [UIFont systemFontOfSize:_fontSize] 设置字体NSForegroundColorAttributeName :[UIColor redColor] 设置文字颜色NSParagraphStyleAttributeName : paragraph 设
2014-01-14 23:12:27
318
原创 iOS基础 - CALayer
一、CALayer简介Core Animation是跨平台的,支持iOS环境和Mac OS X环境凡是支持跨平台的框架,都不能直接使用UIKit框架,因为UIKit框架只能应用在iOS而不能用于Mac需要先理解CALayer,因为核心动画操作的对象是CALayer,而不是UIViewCALayer是核心动画的基础,可以做圆角、阴影、边框等效果每个UIView内部都有一个Laye
2014-01-14 22:56:47
455
原创 iOS基础 - 手势识别 与 手势说明
一、使用手势识别的四个步骤1> 实例化手势识别- (id)initWithTarget:(id)target action:(SEL)action;2> 设置手势识别属性3> 将手势识别附加到指定的视图addGestureRecognizer4> 编写监听方法二、手势说明0> UIGestureRecognizer 所有手势识别的父类,不允许直接使用,可以用来自定义
2014-01-13 23:59:01
412
原创 iOS基础 - Quartz 2D绘图的基本步骤
一、使用Quartz 2D绘图的基本步骤1) 获取上下文context(绘制图形的地方)2) 设置路径(路径是用来描述形状的)3) 将路径添加到上下文4) 设置上下文属性(设置颜色,线宽,线性等)5) 绘制路径6) 释放路径(在Quartz2D中,因为是C语言的框架,所有用Create,Copy字样方法实例化的对象,都需要自行释放)二、Quartz2D是一套C语言的框架
2014-01-12 23:50:31
374
原创 iOS基础 - Quartz 2D绘图
一、Quartz 2DQuartz 2D是一个二维图形绘制引擎,支持iOS环境和Mac OS X环境。Quartz 2D以PDF的规范为基础的图形库,用来绘制二维文字和图形,允许相同的绘图指令在任何装置上,使用可以得到的最佳分辨率,产生相同的输出Quartz 2D API可以实现许多功能,如基于路径的绘图、透明度、阴影、颜色管理、反锯齿、PDF文档生成和PDF元数据访问等Quart
2014-01-12 23:45:38
380
原创 iOS基础 - 触摸事件与手势识别
一、iOS的输入事件UIKit可识别三种类型的输入事件:触摸事件运动(加速计)事件远程控制事件二、UIEventiOS中许多事件对象都是UIEvent类的实例,记录事件产生的时刻和类型UIEvent类事件类型的enum常量:typedef NS_ENUM(NSInteger, UIEventType) {UIEventTypeTouches,UIEventT
2014-01-11 23:10:23
1123
1
原创 iOS基础 - KVC and KVO
一、KVC(key value coding)我们一般是通过调用set方法或属性的点语法来直接更改对象的状态,即对象的属性值,比如[stu setAge:10]; stu.age = 9;KVC,它是一种间接更改对象状态的方式,其实现方法是使用字符串来描述对象需要更改的属性。KVC中的基本调用包括valueForKey:和setValue:ForKey:,以字符串的形式向对象发送消息
2014-01-10 22:20:14
339
原创 iOS基础 - Copy
copy和mutableCopy一个对象使用copy或mutableCopy方法可以创建对象的副本copy – 需要先实现NSCoppying协议,创建的是不可变副本(如NSString、NSArray、NSDictionary)mutableCopy – 需要先实现NSMutableCopying协议,创建的是可变副本(如NSMutableString、NSMutableArray、
2014-01-10 22:11:08
278
原创 iOS基础 - 定时器
1.可以完成的功能:每隔一段时间做一些固定的事情2.创建定时器1> 方法1NSTimer *timer = [NSTimer timerWithTimeInterval:1.5 target:self selector:@selector(randomFeet) userInfo:nil repeats:YES];[timer fire]; // 需要调用fire才能启动计时器
2014-01-10 22:08:40
292
原创 iOS基础 - 史上最难游戏
步骤一:隐藏状态栏步骤二:屏幕适配步骤三:设置窗口的根控制器为导航控制器,并且设置导航条和状态栏。步骤四:搭建设置界面步骤五:控制器连线步骤六:搭建关卡控制器加载pilst文件创建关卡模型将数据转换成模型用xib关卡视图创建关卡视图类设置关卡视图的位置给关卡视图提供关卡模型属性,设置关卡视图的显示。传递模型给view步骤七:搭建准备游戏界面 1. 设置关卡视图
2014-01-10 22:03:42
269
原创 iOS基础 - 控制器
一、当两个控制器互为父子关系的时候,它们的view一般也是互为父子关系比如想添加A控制器的view到B控制器的view上,就应该让A控制器成为B控制器的子控制器,而B控制器就称为A控制器的父控制器//[B addChildViewController:A];// A就会存在于B的childViewControllers数组中// A.parentViewController ==
2014-01-09 22:05:30
302
原创 iOS基础 - Modal制作控制器
1.modal1.modal推出控制器的代码2.modal关闭当前控制器的代码3.modal推出的动画效果4.modal在ipad中应用2.如何给控制器加上导航栏3.modal和导航控制器的区别导航控制器切换是更改导航控制器上显示的子控制器的视图。而moadl切换是直接把之前的控制器视图移除父视图,在将后来的视图添加进去。4.更改窗口的根控制器,也是一种切换控制
2014-01-09 00:53:38
303
原创 iOS基础 - Modal展示控制器
一、利用Modal形式展示控制器1.如何展示// vc就是要展示的新控制器[self presentViewController:vc animated:YES completion:^{NSLog(@"展示完毕");}];2.如何关闭modal控制器[self dismissViewControllerAnimated:YES completion:nil];二、
2014-01-09 00:50:34
311
原创 iOS基础 - 数据存取
一、iOS应用数据存储的常用方式XML属性列表(plist)归档Preference(偏好设置)NSKeyedArchiver归档SQLite3 Core Data二、应用沙盒每个iOS应用都有自己的应用沙盒(应用沙盒就是文件系统目录),与其他文件系统隔离。应用必须待在自己的沙盒里,其他应用不能访问该沙盒应用沙盒的文件系统目录,如下图所示(假设应用的名称叫Layer
2014-01-09 00:46:18
374
原创 iOS基础 - 控制器管理
一、Container一个iOS的app很少只由一个ViewController组成,除非这个app极其简单。当app中有多个ViewController的时候,我们就需要对这些ViewController进行管理容器:负责展示一个或者多个ViewController,并管理这些View Controller的视图生命周期大部分容器本身也是一个ViewController,被容器管
2014-01-08 00:17:38
342
原创 iOS基础 - iOS程序启动原理
一、UIApplicationMain在main.m的main函数中执行了UIApplicationMain这个方法,这是ios程序的入口点int UIApplicationMain(int argc, char *argv[], NSString *principalClassName, NSString *delegateClassName)argc、argv:ISO C标准mai
2014-01-08 00:03:22
391
原创 iOS基础 - 完善键盘处理
1.完善键盘处理步骤一:创建一个数组,里面装着所有的文本框。步骤二:监听所有文本框的开始编辑,设置所有文本框的代理为控制器1.设置生日和城市不允许键盘输入2.当开始编辑的时候调用,用一个成员属性,记录住当前聚焦的文本框步骤三:完成工具条的代理方法步骤四:判断工具条上的按钮是否能点击步骤五:将文本框数组按照y值排序步骤六:监听系统发出键盘滚动通知步骤七:当键盘挡住
2014-01-06 22:07:33
349
原创 iOS基础 - UIDatePicker and UIPickerView and UITextField
1.UIDatePicker继承自UIControl,因此不会通过代理来监听事件的改变,而是通过addTarget来监听事件。监听的事件是值改变事件。2.UIPickerView继承自UIView,里面有数据源和代理,因此UIPickerView展示数据通过数据源,监听事件通过代理。一、如何监听控件的一些事件 或者 行为* 如果父类是UIControl,说明是通过addTarget
2014-01-05 21:24:18
811
原创 iOS基础 - UITextField
一、UITextField1.常见属性@property(nonatomic,retain) UIView *leftView; // 设置文本框左边显示什么控件,可以让文本框的内容往右边挪动@property(nonatomic) UITextFieldViewMode leftViewMode; // 设置左边控件的显示模式/*UITextFieldViewMode的取值
2014-01-04 19:44:51
341
原创 iOS基础 - 通知中心(NSNotificationCenter)
通知中心(NSNotificationCenter)每一个应用程序都有一个通知中心(NSNotificationCenter)实例,专门负责协助不同对象之间的消息通信任何一个对象都可以向通知中心发布通知(NSNotification),描述自己在做什么。其他感兴趣的对象(Observer)可以申请在某个特定通知发布时(或在某个特定的对象发布通知时)收到这个通知通知(NSNotifica
2014-01-03 23:19:07
393
原创 iOS基础 - UITableViewController
1. 继承UITableViewController默认会设置数据源和代理,并且会自动遵守数据源和代理协议,并且self.tableView 相当于 self.view2.更换控制器时,注意把storyboard中之前的控制器给删了,然后在重新拖一个进来,并且设置他的class为新的控制器。就能在加载程序的时候,进入新的控制器。3.自定义cell例子思路引导步骤一:创建xib,描述自定
2014-01-02 21:36:54
366
原创 iOS基础 - UITableView的数据源和代理
一、UITableView的代理方法#pragma mark 每一行的高度- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath#pragma mark 选中了某一行就会调用- (void)tableView:(UITableView *)table
2014-01-01 22:42:06
1102
原创 iOS基础 - UITableView的数据源(dataSource)和代理(delegate)
UITableView的数据源(dataSource)和代理(delegate)UITableView需要一个数据源(dataSource)来显示数据,UITableView会向数据源查询一共有多少行数据以及每一行显示什么数据等。没有设置数据源的UITableView只是个空壳。凡是遵守UITableViewDataSource协议的OC对象,都可以是UITableView的数据源。通常都
2014-01-01 01:06:21
2527
Microsoft.Press.Test.Driven.Development.in.Microsoft.Dot.NET.eBook-LiB.chm
2010-12-28
xUnit+Test+Patterns+Refactoring+Test+Code.pdf
2010-12-28
Test-Driven+Development+By+Example+-+Kent+Beck+(Addison+Wesley%2C+2002).pdf
2010-12-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人