- 博客(23)
- 资源 (4)
- 收藏
- 关注
原创 OC基础17:归档
1、归档即是用某种格式把一个或多个对象保存起来,以便以后还原回来的一个过程。一般归档数据有两种方法:属性列表归档和带键值的归档。 2、使用XML属性列表进行归档: (1)、Mac OS X上的应用程序使用XML属性列表(或plists)来存储诸如默认参数选择、应用程序设置和配置信息这样的一些数据。然而这些列表的归档用途是有限的,因为当某个数据结构创建属性列表时,没有保存
2015-10-09 11:29:30
487
原创 OC基础16:复制对象
1、浅复制即是指针赋值,复制对象的修改会影响被复制对象;深复制即是真正的对象复制,会复制出来一个副本,这个副本和原对象是完全分开的。 Foundation类实现了两个复制的方法:copy和mutableCopy。copy复制出来的是一个不可变的副本,mutableCopy复制出来的是一个可变的副本。 同时注意,产生一个对象的可变副本并不要求被复制的对象本身是可变的,同样的,
2015-10-08 17:24:47
470
原创 OC基础15:内存管理和自动引用计数
1、什么是ARC? (1)、ARC全名为Automatic Reference Counting,即是自动引用计数,会自动统计内存中对象的引用数,并在适当时候自动释放对象; (2)、在工程中使用ARC非常简单:只需要像往常那样编写代码,只不过永远不用写retain、 release和autorelease三个关键字; (3)、在使用ARC之前,需要手动管理内存计
2015-10-08 16:25:15
565
原创 OC基础14:使用文件
1、对于NSFileManager类,文件的路径名的标识只能是文件名或目录。每个路径名都是一个NSString对象。这个路径可以是相对路径,也可以是绝对路径。 2、绝对路径以斜线(/)开始,斜线即是根目录。特殊的代字符(~)标识用户的主目录。但是在程序中应尽量避免使用硬编码的路径名,应使用方法和函数来处理路径或文件。 3、所有对文件的操作都要通过对NSFileMan
2015-10-08 15:11:41
415
原创 OC基础13:数字、字符串和集合2
17、Foundation框架的数组是有序的对象集合。一般来说这些对象元素会是同一种类型,但是也可以不同。 18、不可变数组是由NSArray类处理的,可变数组是有NSMutableArray类处理的。NSMutableArray类是NSArray类的子类。 19、NSArray类常见方法:(1)、NSArray *xxx = [NSArray arrayW
2015-08-21 15:54:05
502
原创 所闻所获4:下拉刷新控件2
在上一篇博文讨论了下拉刷新控件的框架,这一篇博文将会主要讨论刷新过程中控件的动画效果。 1、首先回顾一下在GMPullToRefresh类中的初始化方法:- (id)initWithScrollView:(UIScrollView *)scrollView {//初始化... //定制提示文字... //矩形上升动画图self.activityView=[s
2015-08-08 16:16:44
847
原创 所闻所获3:下拉刷新控件1
本文主要是讨论在最近项目中遇到的一个下拉刷新控件,这个控件的效果如下图: 在这里会用两篇博文的篇幅来解析这个控件,第一篇解析控件的框架,第二篇解析动画。源代码可以在下面的链接下载:http://download.youkuaiyun.com/download/shayneyeorg/8977429 1、这个控件由以下几个文件组成:GMPullToAction、C
2015-08-08 15:45:53
534
原创 格而知之2:UIView的autoresizingMask属性探究
UIView的autoresizingMask属性,是用在当一个UIView实例的父控件的尺寸发生变化时,来自动调整UIView实例在父控件中的位置与尺寸的。autoresizingMask属性是一个枚举值,它的枚举成员如下: 它通过使UIView的上、下、左、右、宽度或高度自动变化来调整。下面分几种情况来讨论这个属性,假设父控件为backgroundView,子控件为subVi
2015-07-30 10:55:01
738
原创 OC基础12:数字、字符串和集合1
1、有时要将一些数字数据类型的值当做对象来使用,那么就可以使用NSNumber类,它会根据这些数据的类型创建对象。 2、注意以下代码段: ... NSNumber *num1, *num2, *num3; //NSNumber是类 NSInteger myInt; //NSInte
2015-07-28 15:44:01
776
原创 格而知之1:UIButton中imageView和titleLabel的位置调整
在使用UIButton时,有时候需要调整按钮内部的imageView和titleLabel的位置和尺寸。在默认情况下,按钮内部的imageView和titleLabel的显示效果是图片在左文字在右,然后两者紧挨在一起构成组合居中显示。如下图: 我们可以使用setImageEdgeInsets:和setTitleEdgeInsets:方法来调整两者的位置。在使用这两
2015-07-27 17:10:56
3487
原创 所闻所获2:使用块回调来实现代理的功能
首先回顾一下代理模式,它的基本说明如下图: 控制器先成为子控件的代理(delegate)并实现相应的代理方法,那么子控件在运作的过程中,遇到某些需要控制器进行配合的场景时,就可以通过delegate属性调用对应场景的代理方法,实现让控制器进行对应操作的效果。 块回调的基本模式如下图: 块回调方法的模型是这样的:在一个方法B内嵌套另一个方法
2015-07-18 22:43:24
745
原创 OC基础11:基本的C语言特性2
19、定义一个int类型的指针:int count = 10;int *intPtr;intPtr =&count;然后就可以引用这个指针:x = *intPtr;带着间接寻址运算符*号才是指针的完整表达形式。 20、&号是取出它标示的变量的地址,*号是把它标示的变量的值当做地址去寻找内容。 注意指针名里面存的是地址。所以用&把某个变量的地址读出来之后,应
2015-07-16 16:49:30
366
原创 OC基础10:基本的C语言特性1
1、 函数和方法的区别?(1)、方法包含在类内部,而函数不用包含在类里面;(2)、方法就是函数的一种。 2、数组中某个元素的读法,比如grades [5]读作“grades sub 5”。 3、关于C语言的数组元素的初始化: (1)、直接列出所有元素的值,比如: int integer[5] = {1, 2, 3, 4, 5}; char
2015-07-15 14:49:26
396
原创 OC基础9:预处理程序
1、 关于#define语句:(1)、#define语句的用途就是给某个符号名称指定一个程序要用到的常量,比如:#define TRUE 1这个语句的意思就是把TRUE指定为1,那么后续的程序中如果需要用到1来做判断或者计算,就可以直接使用TRUE这个符号名称了; (2)、预定义名称不是变量,所以不能在程序过程中给它赋值,不能改变它的值; (3)、
2015-07-11 15:38:33
605
原创 OC基础8:分类和协议
1、关于分类(category):(1)、分类用来拓展现有的类,增加方法,同时可以不必访问主类的源代码,也不用创建子类;(2)、只能增加方法,不能增加变量;(3)、在代码中也只需要import进父类的h文件,不能编写任何继承的语法,因为不是子类;(4)、在分类里添加的新方法会被子类继承。2、编写一个分类的模板:原类是MyClass,分类的名称是M
2015-07-08 22:12:26
499
原创 OC基础7:变量和数据类型
1、有时候初始化需要让对象带有初始值,那么可以定义另一个初始化方法来使用,比如: -(XCLASS *) initWith: (int) n { self = [super init]; if(self) { [self setFunction: n]; // setFunction方法是指XCLASS定义的赋值方法
2015-07-07 22:16:17
399
原创 OC基础6:多态、动态类型和动态绑定
1、关于SEL类型的数据: (1)、SEL类型的数据包含的是一个方法,使用@selector()把一个方法名包含在括号内,就可以取到这个方法,然后可以以这个数据作为参数去调用一些方法; (2)、一般用于那些处理动态类型的方法中,比如有方法-(BOOL)respondToSelector: selector,这个方法是判断某个类能否响应某个方法。比如有实例a,有方法b,这个方
2015-07-03 21:57:28
652
原创 所闻所获1:动画效果的进度球(水面上升、水面涌动)
动画效果的进度球的效果,由于不会制作动态图,这里只放一张静态的截图。水面会有上升动画、涌动动画效果: (1)、进度球的大致实现原理是这样的:新建一个view并把它切割成圆形,在这个view 里面画两条sin曲线,并且将曲线下放部分填满色,然后新开两条线程分别做曲线上升的效果和曲线平移变动弧度的效果,这样就完成了带动画效果的进度球。项目代码可在下方链接下载:htt
2015-07-03 15:59:54
863
原创 OC基础5:继承
1、根类即是最顶层的类,父类也可称为超类; 2、关于实例变量的继承: 只有声明在@interface部分的实例变量才能被子类继承:包括在类名后马上使用花括号声明的变量和使用@property声明的变量,都可以继承。如果完全声明在@implementation部分的变量,则属于私有变量,需要提供方法才能访问。 3、每个实例都有自己的一套实例变量,即使这套实例变量是继承来的。比
2015-07-02 20:45:23
460
原创 OC基础4:类和方法
1、类的声明(@interface)要放在以它自己名字命名的class.h文件中,而类的定义(@implementation)要放在相同名字的class.m文件中; 2、import本地文件和import系统文件的格式是不同的:导入本地文件要用双引号,导入系统文件要用 ;如下: #import #import “calss.h” 3、程序主
2015-07-01 21:18:04
420
原创 OC基础3:一些基本概念
1、关于NSLog函数中的“%2i”: (1)、如果NSLog函数输出两行数据,分别为9和10。如果使用“%i”输出,则9会和1对齐,如果使用“%2i”输出,则9会和0对齐。“%2i”表示输出的整型数会默认占两个字符的宽度并且右对齐; (2)、如果要左对齐,则需要写成“%-2i”,注意负号。 2、关系运算符: && 是AND,|| 是OR;
2015-07-01 20:56:02
464
原创 OC基础2:一些基本概念
1、字符常量是存放在单引号中的单个字符,字符串常量是存放在双引号中的任意个数的字符。 2、Objective-C把‘\n’看过单个字符。 3、int在16位机里取值范围是-32768至32767,在32位机里取值范围是-2147483648至2147483647。而unsinged int则为16位机0到65535,32位机0到4294967295。
2015-06-30 21:32:49
455
原创 OC基础1:一些基本概念
1、关于类方法和实例方法: (1)、类方法是直接使用类引用的方法,不需要实例化就可以调用方法,实例方法对应于具体的实例,需要实例化才能够使用这些方法; (2)、类方法以“+”开头,实例方法以“-”开头; (3)、不管是什么方法,都要定义在@implementation部分里面; (4)、一般在项目中类方法都是设置为工具类使用的。 2、
2015-06-30 21:25:27
520
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人