IOS学习笔记之三:Foundation Kit详解(第一部分)

来源:互联网 发布:什么跑步软件好 编辑:程序博客网 时间:2024/05/23 13:10

1.CF开头的东西一般是与CoreFoundation有关的部分。而CoreFoundation是纯C语言编写的。Foundation框架是在CoreFoundation的基础上编写的。

2.NSRange是用来表示范围内的东西,比如一个字符串中一定范围内的字符。或者一个数组中的一部分item。主要是两个参数,一个是location,另外一个是length。

使用的时候可以有三种方式,

例1:

NSRange range;

range.location=17;range.length=4;

例2:

NSRange range={17,4};

例3:

NSRange range = NSMakeRange(17,4);

它本身可以作为一个参数,例如[Human eat:NSMakeRange(2,3)];

(这一句好像java得样子啊,不太容易记,还是用例2好了)。

3.Geometric types(几何类型)

CGPoint,CGSize类型,其中CG是Core Graphics的缩写。

OC对象的回收机制是动态的。

NSString的声明和使用是这样的:

NSString *word;

word = [NSString stringWithFormat:@"who are you %d?",5];

用+号声明函数时,代表这个函数是属于该类的,成为类方法,通常用来创建类的实例或者获取一些全球类的数据。 

NSString的获取长度的方法也同样适用于国际性语言,例如中文。

4.比较性的方法Comparative Politics

方法如下:

- (NSComparisonResult) compare: (NSString *) aString    options: (NSStringCompareOptions) mask;
NSComparisonResult (which is just an enum

其中options主要用于设置是否忽略大小写,以及是否比较字符串中数字的值

使用例子如下:

if ([thing1 compare: thing2 options: NSCaseInsensitiveSearch | NSNumericSearch]    == NSOrderedSame)
{  NSLog (@"They match!");

5.- (BOOL) hasPrefix: (NSString *) aString;
    - (BOOL) hasSuffix: (NSString *) aString;

And you’d use these methods as follows:

NSString *fileName = @"draft-chapter.pages";
if ([fileName hasPrefix: @"draft"]){
  // this is a draft}
if ([fileName hasSuffix: @".mov"]){
  // this is a movie}
两个方法的函数以及用法如上所示;

- (NSRange) rangeOfString: (NSString *) aString; 用来查验是否在其中一个字符串中有拎一个字符串。

NSRange jackRange = [friends rangeOfString: @"Jack"];
jackRange.length++; // eat the space that follows
[friends deleteCharactersInRange: jackRange];
以上代码段表示先找到朋友列表中的jack,然后去掉那个空格,最后在删掉friend中的jack部分。
NSString与NSMutableString的关系就像是java中String和StringBuffer的关系。创建的方法如下:
NSMutableString *string = [NSMutableString stringWithCapacity:42];
初始化的方法如下:
[string appendString:@"123.txt"]
NSArray只能包含Objective-C的对象,而且不支持被赋值为nil。
NSArray *array = [NSArray arrayWithObjects:@"one", @"two", @"three", nil];
创建的方式如上,最后一个必须是nil来表示这个NSArray已经结束了,这也是为什么这里不能随便被赋值为nil的原因了。
也可以用下面这种方式来创建:

NSArray *array2 = @[@"one", @"two", @"three"];

那么如何使array中所有的对象都做同一个操作呢?
NSEnumerator *enumerator = [array objectEnumerator];while (id thingie = [enumerator nextObject]){
 NSLog (@"I found %@", thingie);}
声明一个枚举对象,然后挨个对对象中的对象进行枚举,并操作。
还有一种快速枚举,代码如下:
for (NSString *string in array){
 NSLog (@"I found %@", string);}
不过通常用block得方法来枚举;
四种枚举所有对象的方法总结以及什么情况下使用。
NSDictionary:明日继续,先巩固今天所学得内容。

0 0
原创粉丝点击