Foundation Kit

     Foundation,顾名思义,就是两类UI框架的基础,因为它不包含UI对象,所以它的对象可以在iOS中或者OS X应用程序中兼容。

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

    Foundation框架是以另一个框架CoreFoundation为基础创建的。CoreFundation框架是用纯C语言写的,其中的函数或者变量的名称是以CF开头。

1. NSRange

   typedef struct  _NSRange

{

    unsigned int location;

    unsigned int length;

}NSRange;

这个结构体用来表示相关事务的范围,通常是字符串里的字符范围或者数组里的元素范围。location字段存放该范围的起始位置,而length字段则是该范围内所含元素的个数。

NSRange range = {17,4} // 采用C语言的聚合结构赋值机制。

NSRange range = NSMakeRange(17,4) //使用Cocoa提供的快捷函数NSMakeRange()的好处是你可以在任何能够使用函数的地方使用它。例如在方法调用中将其作为参数进行传递。

2. Objective-C运行时生成了一个类的时候,会创建一个代表该类的类对象。类对象包含了指向超类、类名和类方法列表的指针,还包含了一个long类型的数据,为新创建的实例对象指定大小。

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

    类方法也可以用来访问全局变量。

   我们所创建的大部分方法都是实例方法,要用减号(-)作为前缀来声明。这些方法将在指定的对象实例中起作用,比如获取一个Circle的颜色;但是如果某个方法实现的是很通用的功能,比如说创建一个实例对象或者访问一些全局类数据,那么最好使用加号(+)作为前缀将它声明为类方法。

4. NSString中有一个关于大小的方法, -(NSUInteger)length,它返回的是字符串中的字符个数。

     NSString的length方法能够精确无误的处理各种语言的字符串,例如俄文、中文或者日文的字符串,以及使用Unicode国际字符标准的字符串。

5.正确比较字符串

 比较两个字符串是否相等时,应该使用isEqualToString: ,而不能仅仅是比较字符串的指针值,举个例子:if ([thing1 isEqualToString:thing2]){ NSLog(@"The strings are the same!");} 不同于 if(thing1 == thing2){NSLog(@" They are the same object!");   这是因为==运算符只判断thing1和thing2的指针数值,而不是它所指的对象。由于thing1和thing2是不同的字符串,所以第二种比较方式会认为他们是不同的。

 因此,你如果想检查两个对象(thing1和thing2)是否为同一事物,就应该使用运算符==;如果是想查看他们是否相等(即这两个字符串的内容是否相同),那么请使用isEqualToString: 。

6. -(NSComparisonResult)compare:(NSString *)aString     options:(NSStringCompareOptions)mask;

       options参数是一个掩位码。你可以使用位或bitwise-OR运算符(|)来添加选项标记。一些常见的选项如下:

      NSCaseInsensitiveSearch:  不区分大小写字符。

      NSLiteralSearch: 进行完全比较,区分大小写字符。

     NSNumericSearch:比较字符串的字符个数,而不是字符串值。如果没有这个选项,100会排在99的前面。 

7.字符串是否还包含其他的字符串

-(BOOL)hasPrefix:(NSString *)aString;//检查字符串是否以某个字符串开头

   -(BOOL)hasSuffix:(NSString *)aString;//检查字符串是否以某个字符串结尾

-(NSRange)rangeOfString:(NSString *)aString;//判断字符串内的某处是否包含其他字符串

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值