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

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值