自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 资源 (7)
  • 收藏
  • 关注

原创 键值编程之KVC

写在前面Objective-C键值编程特性统称为键值编码(Key-Value Coding,KVC)和键值观察(Key-Value Observing,KVO)。本篇主要记录KVC的相关知识。键值编码是一种访问对象属性的机制。可以通过键值编码KVC通过名称(键)访问和操作对象的属性,而无需使用访问方法或支持实例变量。其中键就是属性名称,而值就是属性的值。详细内容下面是一个使用KVC的小例子[ob

2016-08-31 10:55:00 399

原创 代理设计模式

写在前面设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。当然设计模式和语言没有关系,它是一种编程思想。本篇将介绍代理设计模式的实现,以OC语言为例。详细内容对代理设计模式的理解在OC中,代理也称为委托。意思是自己不能完成或不愿意完成的事情,让别人去做。比如,你需要去买一设计模式的书,但是自己方便,这是

2016-08-30 21:14:03 326

原创 UML (Unified Modeling Language)的几种关系

写在前面  本篇主要记录UML中比较重要的几种概念,并不对UML做详细介绍。其中多表现为OC中的内容。详细内容关联、A类的实例方法的形参是B类的对象,A类和B类的关系是关联关系。使用实心线加箭头表示,箭头指向形参类(B类)。 依赖、A类的类方法的形参是B类的对象,A类和B类的关系是依赖关系。使用虚线加箭头表示,指向形参类(B类)。 聚合、A类的实例变量是B类的对象,A类

2016-08-30 20:26:57 465

原创 枚举的使用

C语言的枚举typedef enum ENUM_NAME{ ENUM_VAR1, // 默认是int类型,从0开始 ENUM_VAR2}ENUM_NAME;其他的写法就不列举了。Objective-C的枚举在oc中使用枚举可以用NS_ENUM和NS_OPTIONS关键字(确切的讲是对enum的重命名)来定义枚举类型。下面来看看如何使用:typedef NS_ENUM(NS_OPT

2016-08-10 11:10:51 441

原创 常用类-NSMutableDictionary

NSMutableDictionary是NSDictionary的子类,在 常用类-NSDictionary 一篇中的API都适用于NSMutableDictionary,下面看下其独有的API。常用API预览 -initWithCapacity:  初始化字典空间 -setObject:forKey:  添加key-value - removeObjectForKey:  移除

2016-08-05 16:41:51 297

原创 常用类-NSDictionary

概述NSDictionary是关键字及其定义的集合。也被称为散列表或关联数组,它使用的是键查询的优化存储方式。它可以立即找出要查询的数据,而不需要遍历整个数组进行查找。在快速查找方面有很大优势。对于NSDictionary对象,一经创建就无法进行修改;若想进行修改,可以通过创建其子类NSMutableDictionary的对象。该篇主要讲述NSDictionary的使用。常用API预览 +

2016-08-04 20:30:27 326

原创 常用类-NSMutableArray

NSMutalbeArray类对象是可变的,它是NSArray类的子类,在 上篇 介绍有关NSArray类的API这里都是可以使用的。下面介绍下NSMutableArray特有的API。

2016-08-04 17:13:57 267

原创 NSString的内存问题

先看看我们遇到的问题 从上面运行代码所占用内存来看,并不像我们想的那样内存飚升。这是为什么?看看下面的分析:内存地址的比较测试用例 NSString *str1 = @"123456"; NSString *str2 = @"123456"; NSString *str3 = [NSString stringWithFormat: @"123456"]; NSSt

2016-08-04 09:20:57 573

原创 运行时初探

运行时消息传递消息传递消息传递是指一种在对象之间发送和接收消息的通信模式。在Objective-C中使用消息传递来调用类和类实例的方法。一个发送消息的例子:[receiver messageWithParam: param1 andParam: param2];以上示例由接收器(消息的目的地:类或类实例)和消息(由选择器和参数)组成。消息传递过程消息传递的关键元素- 消息:向类或类实例发送的名

2016-08-03 21:39:42 233

原创 OC的消息转发

什么是转发机制当对象接收到与其方法不匹配的消息时,通过消息转发机制可以使对象执行用户预定义的处理过程。消息转发小例子先看下转发图解一步步构建建立DoMyWork类 DoMyWork.h #import <Foundation/Foundation.h> @interface DoMyWork : NSObject @property (nonatomi

2016-08-03 17:11:35 332

原创 常用类-NSArray

注:NSArray一经创建就不可以更改,只能存储NSObject类子类的对象,不能直接存储C语言基本数据类型,也不能直接存储nil空类型的对象。(直接存储是指,不经过处理的存储) 创建数组@[@”“, @”“]; // 直接写出数组中的对象 NSArray *boxes = @[ @"12", @"34", @"56" ];+arrayWithObjects // 列出

2016-08-03 15:17:15 252

原创 常用类-NSMutableString

NSMutableString是NSString的子类,所以 上篇 介绍的NSString所有方法对于NSMutableString来说,都可以使用。因为NSMutableString的对象是可变的字符串。下面来说下其特有的方法。 字符串创建+stringWithCapacity: // 参照给定大小创建字符串 NSMutableString * mStr = [NSMutabl

2016-08-03 10:47:33 299

原创 常用类-NSString

NSString注:NSString类的对象是不可变的,就是说,一个字符串一旦被创建,就不可再次改变它的内容。默认使用UTF-16编码。 字符串的创建@”“// 最简单的就是这个啦。NSString *str = @"This is a string."stringWithFormat:// 根据后面的格式化串进行初始化。格式化串和NSLog方法的参数一样。NSString *str

2016-08-02 21:52:48 288

原创 category的应用

创建对私有方法的向前引用。一般情况下,没有在.h接口文件中声明,只有在.m文件中出现的方法,外界是不能调用的。 但是通过定义类别后,把这个.m文件中的方法在类别的.h文件中声明出来,外界就可以调用了。 这种方式就是对私有对象的向前引用。向对象添加非正式协议。正式协议是通过@protocol关键字声明的一系列方法,然后由准守协议的类去实现这些方法。非正式协议是通过分类,将正式协议里声明的方法声

2016-08-01 17:51:28 286

原创 继承

语法@interface ClassName : NSObject @end 继承用 : 表示。子类可以从父类得到什么接口中声明的实例变量。接口中声明的方法。父类遵守的协议,子类也会默认遵守。注意事项Objective-C是单继承的。谁的实例变量由谁进行维护。要使用方法访问父类的实例变量。子类的对象中有一个isa指针,指向的是它所属的类。每

2016-08-01 17:44:48 267

原创 块-block(语法部分)

什么是block块,也称为闭包。 简单的说,块提供了一种方式可以创建一组语句(即代码块)并将这些语句赋值给一个变量,随后就可以调用这个变量。它可以访问和它在同一个作用域内的变量。如何声明一个bloc通过支持块的语法功能可以声明块类型的变量和常亮。 声明一个块可以使用下面的语法: 返回值类型 (^块的名称) 参数类型 return type (^blockName) (parameterType,

2016-08-01 16:56:37 808

原创 关于内存管理的一些小问题

????????????????????????retainCount????????????0.@autoreleasepool { NSObject *obj = [[NSObject alloc] init]; [obj release]; NSLog(@"retainCount is %lu", obj.retainCount); } ????????

2016-08-01 16:53:03 372

原创 内存管理机制MRR/MRC和ARC

内存管理规则当你使用new、alloc、copy方法创建一个对象时,该对象的引用计数器值为1.当不再使用该对象时,你要负责向该对象发送release或者autorelease消息。使用其他方法获取对象,则假设该对象的引用计数器为1,切已经设置了自动释放,你不必对其进行管理;当你拥有该对象,则需要保留(retain),在操作完成后还需要释放这个对象。如果你保留了某个对象,你需要释放或自动释放该对

2016-08-01 16:52:08 1452 4

原创 内存管理

管理的是哪部分内存继承NSObject的类 的对象所占用的内存需要进行管理。C语言的数据类型不需要进行管理。OC对象使用的内存在堆上,需要管理,而C语言的数据存在在栈中,计算机自动管理。不进行内存管理或进行了错误的内存管理将导致的结果内存泄漏:程序没有释放不再使用的对象,就会出现该问题。若程序一直申请内存,却不进行释放,那么内存资源终将耗尽。悬挂指针:程序释放了任然在使用的内存,会导致该

2016-08-01 16:47:04 252

原创 protocol

与非正式协议相比,正式协议也是一系列方法的声明。但是,正式协议需要显示的准守。正式协议一般独立成为一个文件。一个类若准守了协议,它必须实现协议的必须方法。如何声明协议使用@protocol // method list@end来声明一个协议。如何遵守协议在声明类的时候,使用@interface ClassName:父类<协议>@end采用了协议之后,类必须实现协议中要求必须实现的方法,对于协

2016-08-01 16:43:58 420

原创 selector

什么是选择器选择器是一个方法名称,但它以Objective-C运行时使用特殊方式编码,以快速进行查询。 @selector(方法名)给一个方法进行编码,生成选择器。NSObject类提供了一个方法: - (BOOL)respondsToSelector:(SEL)aSelector; 用于检查一个对象是否能响应一个特定消息。选择器可以当做参数进行传递。

2016-08-01 16:42:53 208

原创 category

什么是category类别一种为现有类添加新方法的方式。它利用OC动态运行时分配机制。它允许你给任何类添加新的方法。实现语法@interface 已有类名 (类别名称) // add your methods @end小例子.h文件,文件名为NSString+NumberConvenience@interface NSString (NumberConvenience) - (NSNu

2016-08-01 16:42:03 279

原创 方法

声明格式+/- (返回值) methodName:(参数类型)参数名称 andSome:(参数类型)参数名称… 如:+ (id) initWith:(NSString*) name andHeight:(double) height; 注:没有形参的方法比较简单,- (void)print;: 称为中缀符,是方法名的一部分。一个中缀符匹配一个形参。类方法/静态方法以 + 开头的方法称为类方

2016-08-01 16:39:51 226

原创 @property

@property做了什么@property : 在类的接口中、分类接口、协议中声明属性。格式:@property (特性) 属性类型 属性名称。 它会设置与属性关联的setter/getter方法,但是无法完成真正的方法定义。 @synthesize: 在实现文件中完成属性setter/getter方法的定义、实例变量的定义,并在setter/getter方

2016-08-01 16:37:18 301

原创 BOOL

BOOL的实际类型typedef signed char BOOL 注:这意味着BOOL是一个用8bit存储的类型,若将一个多于8bit的类型赋值给BOOL类型,将取最后面的8bit作为它的值。BOOL的取值YES 1;NO 0 注:BOOL isTrue;默认为 0

2016-08-01 16:33:02 1903

原创 内存的划分

内存的划分栈-stack栈中的内存由编译器自动管理。 函数的形参、普通局部变量都存储在栈中。堆-heapC语言中使用malloc函数、OC中使用alloc函数申请的都是堆中的内存。需要程序员手动动态的 申请和释放。若程序员申请过后,没有释放,若程序正常结束,OS会回收这部分内存;也有可能导致程序无法正常结束。静态存储区全局变量、静态变量都存储在静态区。内存分配发生在编译阶段。系统管理。常量区con

2016-08-01 16:29:51 305

Kext Wizard

黑苹果哈珀榜首驱动工具。 教程:http://benyouhui.it168.com/thread-1790322-1-1.html

2017-11-07

git-cheatsheet

git常用命令集合。

2016-08-02

AnimationDemo

基础Animation示例!

2016-03-20

Notification小例子

演示Android平台上的Notification的简单使用。如有不足,请指正,我们一起学习进步!谢谢!

2016-03-17

经典算法100例

适合入门级的C语言学习者,帮助学习者更好的打基础,了解程序的躯体!

2014-12-08

算法设计与分析

书主要取材于算法设计与分析领域的经典内容,并介绍了算法设计的发展趋势。内容主要包括非常经典的算法设计技术,例如递归与分治、动态规划、贪心、回溯、分支限界、图算法,也包括了一些高级的算法设计主题.

2014-12-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除