- 博客(18)
- 收藏
- 关注
原创 Objective-C Runtime 运行时(二):成员变量与属性
在前面一篇文章中,我们介绍了Runtime中与类和对象相关的内容,从这章开始,我们将讨论类实现细节相关的内容,主要包括类中成员变量,属性,方法,协议与分类的实现。本章的主要内容将聚集在Runtime对成员变量与属性的处理。在讨论之前,我们先介绍一个重要的概念:类型编码
2015-09-07 23:03:46
1380
原创 Objective-C Runtime 运行时(一):类与对象
Objective-C语言是一门动态语言,动态语言相对静态语言最大的特点是把很多静态语言在编译和链接时期做的事放到了运行时来处理。这种动态语言的优势在于:我们写代码时更具灵活性,如我们可以把消息转发给我们想要的对象,或者随意交换一个方法的实现等。这种特性意味着Objective-C不仅需要一个编译动态语言的编译器,还需要一个运行时系统来执行编译的代码。对于Objective-C来说,这个运行时
2015-08-30 22:13:48
1004
原创 NSDate和NSString相互转换
在日常的开发中经常需要NSDate类型时间与NSString字符串类型时间进行相互转换,整理了一下NSDateFormatter 格式化参数,以及写了一个NSDate的分类方便在开放中使用。NSDateFormatter 格式化参数如下: G: 公元时代,例如AD元年 yy: 年的后两位 yyyy: 完整年 MM: 月,显示1~12 MMM: 月,显示为英文
2015-08-12 22:21:47
692
原创 Objective-C内存管理(四)@property相关参数详解
在Xcode4.5以及以后的版本,通过@property就可以声明一个类的成员属性,还可以设置成员属性的其他属性,下面对@property的用法及其参数设置进行详细讲解。创建Person类Person.h文件@interface Person : NSObject// 返回BOOL类型的方法名一般以is开头@property (nonatomic, getter = isRich
2015-07-17 23:39:28
386
原创 Objective-C内存管理(三)set方法内存管理
说明:以下所有都是在MRC环境下创建Car类Car.h文件@interface Car : NSObject{ int _speed;}- (void)setSpeed:(int)speed;- (int)speed;@endCar.m文件#import "Car.h"@implementation Car- (void)setSpeed:(in
2015-07-13 22:52:00
398
原创 Objective-C 僵尸对象
1、开始僵尸对象模式在Xcode中开启僵尸对象模式步骤2、什么是僵尸对象在正常情况下,向已经回收的对象发送消息时灵时不灵,这要取决于该对象所在的内存空间是否被覆盖。cocoa提供了僵尸对象(Zombie Object)的功能,开启该功能后,运行时会把已经释放的对象转化为特殊的僵尸对象,而不是真正的回收它们,这种对象在核心内存无法重用,也不可能被复写。当僵尸对象收到消息后
2015-07-11 20:51:23
567
原创 Objective-C内存管理
1、什么是内存管理** 移动设备的内存及其有限,每一个app所能占用的内存也有限的** 当app所占用的内存较多时,系统会给app发送内存警告,这时,app需要回收一些不再使用到的内存空间,比如回收一些不需要使用的对象。** 管理范围,任何继承了NSObject的对象,对其他的基本数据类型(int 、char、 float、double、struct、enum等)无效
2015-07-11 10:41:35
300
原创 CALayer(二)创建新图层
UIView内部有一个图层,通过访问UIView的layer属性能够访问UIView的图层,进入UIView的头文件查看layer属性,@property(nonatomic,readonly,retain) CALayer *layer; 发现layer是只读属性,换言之,UIView内部的图层不能被修改,但是我们可以在该图层上面添加子图层。在UIVie
2015-07-05 10:23:37
479
原创 CALayer-简介(一)
什么是CALayer:* 在iOS系统中,能够在屏幕上显示的东西都是UIView,比如UIButton, UIImageView, UILable等等UI控件。* 其实UIView本身并不具备显示的功能,UIView之所以能显示在屏幕上,是因为它内部的图层。图层就是CALayer对象,CALayer对象才具备显示的功能。* 在创建UIView对象时,UIView内部会自动创建一个图
2015-06-28 23:20:29
486
原创 Objective-C ---KVO内部实现原理
KVO:什么是KVO,全称:Key Value Observer (键值监听),通过KVO可以方便的监听某个对象的某一个属性值的改变,那KVO的内部实现是怎样的呢?从下面两点来认识KVO。1.KVO内部实现是利用运行时实现对属性值改变进行监听的2.当某一个对象第一次被监听时,会动态的创建一个继承至该对象的类的子类,在子类中重写setter方法,在setter方法中调用通知观察者的方法,
2015-06-27 21:36:06
589
原创 iOS开发--Objective-C之KVC
首先来了解一下什么KVC,KVC就是我们平时所说的键值编码,简单的理解就是可以通过一个key值,修改对象的与这个key对应属性的值,也可以根据该key获取对象的与这个key相对应属性的值。KVC的操作方法由NSKeyValueCoding协议提供,而NSObject就实现了这个协议,也就是说ObjC中几乎所有的对象都支持KVC操作,常用的KVC操作方法如下:设置属性的值:- (void
2015-06-14 22:07:11
415
原创 iOS程序沙河路径
每一个iOS应用都有一个沙河,用来存储应用相关的文件数据。沙河里面下面有三个字目录,下面介绍这单个目录的作用。1)/Documents/:存放用户文档和应用数据文件,该目录下面的文件会被itunes同步。 NSString *docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainM
2015-06-14 15:52:56
1938
原创 Quarzt2D--图形上下文栈
在Quartz2D简介中讲到了图形上下文,对图形上下文有一个了解,图形上下文保存绘图的了绘图的路径和绘图的状态,把图形上下文的保存的信息渲染到View上,View就能显示绘制的图形。当个绘图时某个图形上下文需要在多个地方用到时,就需要多当前的图形上下文就行保存,以便后面的再次用到,那么如何保存图形上下文呢?这就需要用到图形上下文栈。既然是栈,就遵循先进后出的原则。直接通过示例来了解图形上下文栈。
2015-06-11 23:29:54
516
转载 Quartz2D简单介绍
本博客仅用于学习,无任何商业用途,如有侵权,请联系本人,本人马上删除。 博客原创地址:http://www.cnblogs.com/wendingding/p/3778940.html一、什么是Quartz2D Quartz 2D是⼀个二维绘图引擎,同时支持iOS和Mac系统 Quartz 2D能完成的工作: 绘制图形 : 线条\三角形\矩形\圆\弧等
2015-06-08 22:55:17
335
原创 Quartz 2D 简单使用
想要在UIView内部绘制一下东西,需要自定义UIView,并且实现UIView的- (void)drawRect:(CGRect)rect方法,为什么需要实现drawRect:方法才能绘图到view上,是因为在drawRect:方法中才能取得跟view相关联的图形上下文,那么什drawRect:方法在什么时候被调用呢?1)当view第一次显示到屏幕上(View被加到UIWindow上显示
2015-06-08 22:36:29
441
原创 iOS按钮UIButton常用属性总结
UIButton在iOS开发中是再常用不过的控件了,但有些属性用的较少,难免会忘记,今天对按钮的属性稍作总结。- (void)viewDidLoad { [super viewDidLoad]; UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(10, 100, 300, 100)];
2015-06-02 21:30:48
478
原创 iOS多线程-------线程的状态
线程从创建、运行到结束总是处于下面五个状态之一:新建状态、就绪状态、运行状态、阻塞状态及死亡状态。下面通过NSThread方式创建线程来详细说明线程的这五种状态控制器加载完毕创建一个线程 self.thread ,点击控制器的View开启该线程。@interface ViewController ()@property (nonatomic, strong) N
2015-05-30 23:33:02
469
原创 Objective-C 底层数据类型分析(一)
写了这么多OC代码,对OC的底层实现还是理解不透,遇到一些疑惑还是无法解释为什么是那样,要理解OC的底层实现,首先需要对OC底层使用的数据类型有一定的了解,下面逐一分析。声明:需要对C语言的数据结构有些了解才能更好的理解下面的内容。
2015-05-12 22:36:22
430
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人