Foundation Kit 介绍

       Foundation 框架中有很多有用的、面向数据的简单类和数据类型如:NSString、NSArray、NSEnumerator和NSNumber。 

1. > 范围

范围(NSRange)是一个结构体:

typedef struct _NSRange

{

unsigned int location;

unsigned int length;

}NSRange;

2.> CGPoint表示的是笛卡尔平面的一个坐标(x, y)。

struct CGPoint

{

float x;

float y;

};

3. > CGSize用来存储长度和宽度

struct CGSize

{

float width;

float height;

};

struct CGRect

{

CGPoint origin;

CGPoint size;

};

Cocoa也为我们提供了创建这西额数据类型的快捷函数:CGPointMake()   CGSizeMake()  和  CGRectMake()

(注: 为什么这些数据类型是C的struct结构体而不是对象呢?原因就在于性能。程序(尤其是GUI程序)会用到许多临时的坐标、大小和句型区域来完成工作。记住,所有的Objective-C对象都是动态分配的,而动态分配是一个代价较大的操作,TA会消耗大量的时间,所以将这些结构体创建成第一级的对象会在使用过程中大大增加系统开销。);

4. > 字符串

NSString(字符串)其实就是一组人类可读的字符序列。由于计算机与人类进行定期交互,因此最好让TA们有一个可以存储和处理人类可读文本的方式。

4.1 > 创建字符串

在创建字符串方法中的stringWithFormat: 就是通过各式字符串和参数来创建NSString的

+ (id) stringWithFormat:(NSString *) format, ...;(这是一个类方法)

4.2 . > 类方法讲解

如果你在声明方法时添加了+,就是把这个方法定义为类方法(class method)。这个方法属于类对象(而不是类的实例对象),通常用于创建新的实例。我们称这中用来创建新对象的类方法为工厂方法(factory method).

stringWithFormat:就是一个工厂方法,TA根据你提供的参数创建新对象,用stringWithFormat:来创建字符串比创建空字符串然后生成所有元素要容易得多。

类方法也可以用来访问全局数据。AppKit(基于OS X平台)中的NSColor类 和 UIKit (基于iOS平台)中的Color类都拥有以各种颜色命名的类方法,比如redColor 和 blueColor .

我们平时所创建的大部分方法都是实例方法,要用减号(-)作为前缀来进行声明,这些方法将会在指定的对象实例中起作用。

4.3 > 关于字符串的大小

NSString中另一个好用的方法(实例方法)是length,TA返回的是字符串中的字符个数。

- (NSUInteger) length;

可以这样使用它:

NSUInteger length = [height length];

4.4 > 关于字符串的比较

isEqualToString:可以用来比较接收方(receiver, 接收消息的对象 )和作为参数传递过来的字符串。isEqualToString:返回一个BOOL值来表示两个字符串的内容是否相同,他的声明如下。

- (BOOL) isEqualToString:(NSString *) aString;

下面是他的使用方法。

NSString *thing1 = @"hello 5";

NSString *thing2 = [NSString stringWithFormat:@"hello %d",5];

if ([thing1 isEqualToString: thing2])

{

NSLog(@"They are the same!");

}

4.4.1 > 如果要比较两个字符串,可以使用compare: 方法,其声明如下:

- (NSComparisonResult) compare:(NSString *)aString;

compare:将接收对象和传递过来的字符串逐个进行比较,TA返回一个NSComparisonResult(也就是一个enum型枚举)来显示比较结果。

enum

{

NSordereAscending = -1,

NSOrderedSame,

NSOrderedDescending

};

typedef NSInteger NSComparisonResult;

 

posted @ 2016-02-24 19:37  DreamOfChina  阅读(175)  评论(0编辑  收藏  举报