摘要: 当系统提供的类型不能达到我们的使用要求时,比如我想在CoreData中存储UIColor,该怎么办呢?这时候就要用到CoreData中非常强大的一个存储类型了:Transformable下面将通过一个例子简单介绍下如何存储像UIColor这种数据1、创建实体模型2、根据模型生成数据模型,并且创建用于转换Color的类,继承自NSValueTransform3、在.m文件中有4个必须实现的方法 1 // 2 // ColorTransformer.m 3 // CoreData自定义模型数据 4 // 5 // Created by Liu Feng on 14-3-1. 6 // Co... 阅读全文
posted @ 2014-03-01 23:10 2020_xx 阅读(2068) 评论(0) 推荐(1) 编辑
摘要: 当你需要和别人分享代码,但又不想让别人看到你内部的实现时就需要制作静态库,通常用于第三方SDK下面就分享一下制作静态库(.a)的过程:1、打开Xcode,新建workspace2、随便给workspace取个名字3、在workspace新建工程4、选择静态库5、点击下一步6、删除系统自动帮你生成的文件7、引入需要制作成静态库的代码文件8、添加build headers9、点击后出出现一个可以添加头文件的选项10、添加要暴露给外界的头文件11、调整头文件的位置,拖到public12、选择设备(默认为真机),设备决定了该静态库用于真机还是模拟器,然后command+B经过了以上12步,就完成了一个 阅读全文
posted @ 2014-03-01 16:06 2020_xx 阅读(894) 评论(5) 推荐(3) 编辑
摘要: Xcode 项目中我们可以使用 ARC 和非 ARC 的混合模式。如果你的项目使用的非 ARC 模式,则为 ARC 模式的代码文件加入 -fobjc-arc 标签。如果你的项目使用的是 ARC 模式,则为非 ARC 模式的代码文件加入 -fno-objc-arc 标签。添加标签的方法:打开:你的target -> Build Phases -> Compile Sources.双击对应的 *.m 文件在弹出窗口中输入上面提到的标签 -fobjc-arc / -fno-objc-arc点击 done 保存 阅读全文
posted @ 2014-02-28 13:58 2020_xx 阅读(498) 评论(0) 推荐(0) 编辑
摘要: runtime机制为我们提供了一系列的方法让我们可以在程序运行时动态修改类、对象中的所有属性、方法。下面就介绍运行时一种很常见的使用方式,字典转模型。当然,你可能会说,“我用KVO直接setValuesForKeysWithDictionary: 传入一个字典一样可以快速将字典转模型啊”,但是这种方法有它的弊端,只有遍历某个模型中所有的成员变量,然后通过成员变量从字典中取出对应的值并赋值最为稳妥,由于篇幅有限,这里暂且不讨论那么多,你权且当作多认识一种数据转模型的方式,以及初步认识一下runtime的强大。1、假设我定义了一个类(随便写的,不要纠结名字,.m文件啥也没写);@interface 阅读全文
posted @ 2014-02-24 22:03 2020_xx 阅读(685) 评论(0) 推荐(0) 编辑
摘要: 最近有个同事问我关于“runtime机制”的问题,我想可能很多人对这个都不是太清楚,在这里,和大家分享一下我对于runtime机制的理解。要深入理解runtime,首先要从最基本的类与对象开始,本文将详细讲解OC中类与对象的结构层次,后续将逐渐更新如何利用runtime操作类。首先,我们从/usr/include/objc/objc.h和 runtime.h 中找到对 class 与 object 的定义: 1 /// An opaque type that represents an Objective-C class. 2 typedef struct objc_class *Class; 阅读全文
posted @ 2014-02-23 13:39 2020_xx 阅读(2264) 评论(2) 推荐(1) 编辑
摘要: 注意:本人所讲的后台查询必须在使用CoreData时选择存储类型为“SQLite”,因为二进制或者XML存储方式会在打开的时候直接读到内存中。1、CoreData数据后台查询出现的情况 CoreData后台查询数据的ID,然后在主线程通过ID取出所需要的数据模型,可以提高效率,提升用户体验。2、CoreData后台查询的步骤 > 创建一个新的管理对象上下文background context,类型为:NSPrivateQueueConcurrencyType > 调用background context的performBlock:方法,后台执行查询操作,获取所需数据的ID > 阅读全文
posted @ 2014-02-23 10:53 2020_xx 阅读(769) 评论(0) 推荐(0) 编辑
摘要: 概要: 4个触摸事件、6个手势识别、响应者链条1、4个触摸事件1> 触摸事件主要是针对视图的,包括- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;- (void)touchesCancelled:(NSSet *)touches withEvent:( 阅读全文
posted @ 2014-02-19 09:43 2020_xx 阅读(249) 评论(0) 推荐(0) 编辑
摘要: 最近在做一个小项目的时候,发现使用NSURLSession或者AFNNetworking进行断点续传时诸多的不便,于是自己封装了一个类来实现断点续传,在程序重新启动时仍然可以继续下载(需自己调用方法),同时可以在同一时间多次调用该类方法。使用时请注意传入各参数的合理性,方法内部并没有对传入的参数进行修正主要技术: NSURLConnection、block、NFFileHandle1、首先,我提供一个类方法,供外界调用。 创建的类名为DownloadService 1 // 2 // DownloadService.h 3 // 11111 4 // 5 // Created by Li... 阅读全文
posted @ 2014-02-19 09:42 2020_xx 阅读(2050) 评论(1) 推荐(1) 编辑
摘要: iOS开发中常用的数据存取方式有:XML属性列表-PListNSKeyedArchiver 归档Preference-偏好设置SQLite3Core Data-以面向对象的方式操作数据库SQLite1、SQLite3简介> SQLite属于嵌入式的关系型数据库> SQL语句- SQL(structured query language):结构化查询语言,一种对关系型数据库中的数据进行定义和操作的句法- 要操作和访问数据库中存储的数据,必须编写SQL语句- SQL语句是不区分大小写的- SQL语句都以分号结尾数据定义语言-DDL Data Definition Language 其语 阅读全文
posted @ 2014-01-11 10:49 2020_xx 阅读(433) 评论(0) 推荐(0) 编辑
摘要: Managing Text Fields and Text Views管理UITextField和UITextView实例UITextField和UITextView的实例拥有两个最主要的功能:展示文本和输入、编辑文本。许多程序的任务都和这些简单的目的有关,包括配置文本属性,访问文本内容,确认用户输入以及展示一些其它的视图(例如在uitextfield中添加标签按钮)。UITextField和UITextView的代理负责以上所说的大部分任务,代理必须遵守UITextFieldDelegate和UITextViewDelegate协议,并且实现其中的一个或多个方法。协议中所有的方法都是可选的。 阅读全文
posted @ 2014-01-09 23:28 2020_xx 阅读(425) 评论(0) 推荐(0) 编辑