Foundation框架基础

来源:互联网 发布:英语信件开头问候 知乎 编辑:程序博客网 时间:2024/05/16 11:15

常用数据类型

  

  范围结构体

    NSRange

      表示相关事物的范围

      字符串的字符范围

      数组的元素范围

    location字段:存放该范围的起始位置

      值NSNotFound:用来表示无意义范围

    length字段:该范围内所含元素的个数

  创建范围结构体

    直接给字段赋值

      表示相关事物的范围

    用C语言的聚合结构赋值机制

    用NSMakeRange()

      好处:可以在任何能够使用函数的地方使用它

  几何数据类型

    点NSPoint

      代表笛卡几平面中一个点

      (xy

      NSMakePoint()

    尺寸 NSSize

      NSMakeSize()

    区域 NSRect

      NSMakeRect()

字符串

  NSString

    标志是双引号内的字符串前的@

  创建字符串

    省略号(…),它告诉我们(和编译器),这个方法可以接收多个以逗号隔开的其他参数

    就像printf()NSLog()一样

 类方法:

  stringWithFormat

    声明方法时添加了加号+,是一个类方法

    是一个工厂方法,提供的参数创建新对象实现协议

    类方法也可以用来访问全局数据

    注意

      我们创建的一般都是实例方法

      声明时,添加减号-

 关于大小:

  NSStringlength:方法

      能够准确无误地处理国际字符串

      如:含有俄文、中文或者日文字符的字符串

      以及使用Unicode国际字符标准的字符串

 比较策略:

  isEqualToString:

    比较接收方和当作参数传递来的字符串

    返回BOOLYESNO)型数据

      表示两个字符串的内容是否相同

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

  compare:

    比较接收方和当作参数传递来的字符串

    返回NSComparisonResult型数据

    NSOrderedAscending

    NSOrderedSame

    NSOrderedDescending

  compare:option:

    NSCaseInsensitiveSearch

    NSLiteralSearch

    NSNumericSearch

 字符串内是否还包含别的字符串:

检查字符串是否以另一个字符串开头

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

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

    判断字符串是否以另一个字符串结尾

使用举例:

NSString *filename = @draft-chapter.pages;

 

If  ([filename hasPrefix: @draft

{

// this is a draft

}

If  ([filename hasSuffix: @.mov

{

//this is a movie

}

  rangeOfString

       -(NSRange) rangeOfString: (NSString *) aString;

    判断字符串内的某处是否包含其他字符串

可变字符串 

  NSString的子类NSMutableString

  创建

capacity

    + (id) stringWithCapacity: (unsigned) capacity;

    这个容量只是给NSMutableString的一个建议

    字符串的大小并不仅限于所提供的容量

这个容量仅是个最优值。

  附加新字符串

  appendString:

    接受参数aString

    然后将其复制到接收对象的末尾

  appendFormat:

    工作方式与stringWithFormat:类似

    但它将格式化的字符串附加在接收字符串的末尾,而不是创建新的字符串对象

  Eg

-(void) appendString: (NSString *) aString;

-(void) appendFormat: (NSString *)format,;

  

集合

  不可变数组

  NSArray

    存储对象的有序列

    可以在NSArray中放入任意类型的对象

      NSStringCarShapeTire

      或其要存储的对象表

  两个限制

    只能存OC的对象,而不能存C语言中的基本数据类型

      如:intfloatenumstructNSArray中随机指针

    不能存储nil(对象的零值或NULL值)

  创建一个新的NSArray

      arrayWithObjects

  可变数组

  NSMutableArray

    可变数组

    可以随意地添加和删除数组中的对象

  创建一个新的可变数组

arrayWithCapacity

  + (id) arrayWithCapacity: (unsigned) numltems:

   addObject:在数组末尾添加对象

   removeObjectAtIndex:删除对象

  枚举

   NSEnumerator

   objectEnumerator:

      -(NSEnumerator *) objectEnumerator;

    向数组请求枚举器

   reverseObjectEnumerator

NSEnumerator *enumerator;

enumerator = [array objectEnumerator];

 

id thingie;

while (thingie = [enumerator nextObject]) 

{

NSLog (@I found %@,thingie);

}

    从后向前浏览集合

   nextObject:下一个对象

  快速枚举

    这个循环体将会遍历数组中的每个元素

    并且用变量string存储每个数组值

  

      for (NSString *string in array) 

      {

         NSLog (@I found %@, string);

      }

  字典

    NSDictionary 

      是关键字及其定义的集合

      在给定的关键字(通常是一个NSString字符串)下,存储一个数值(可以是任何类型的对象)

      可以用这个关键字来查找相应的数值

    dictionaryWithObjectsAndKeys

      创建字典

      接受对象和关键字交替存储系列,以nil值作为终止符

    + (id) dictionaryWithObjectsAndKeys: (id) firstObjext,;

  可变字典

 NSMutableDictionarydictionaryWithCapacity

创建新的可变字典

    并指定一个建议大小

    + (id) dictionaryWithCapacity: (unsigned int) numltems;

  setObjectforKey

    给字典添加元素,如关键字已存在则替换原有的值

    -(void) setObject: (id) anObject forkey: (id) aKey;

    removeObjectForKey:

    删除指定的元素

各种数值

  NSNumber

    包装基本数据类型

    以对象形式实现

    把简单数据类型封装成一个对象

  创建新的NSNumber对象的类方法:

    +NSNumber *numberWithChar: (char) value;

    +NSNumber *numberWithInt:(int)value;

    +NSNumber *numberWithFloat: (float) value;

    +NSNumber *numberWithBool: (BOOL) value;

  NSValue

    NSNumberNSValue的子类

    可以包装任意值

    可用NSValue将结构放入NSArrayNSDictionary

    +NSValue *valueWithBytes:(const void *value

             objCType:const char  *type;

  创建新的NSValue对象的类方法:

    传递的参数是你想要包装的数值的地址

      如一个NSSize或你自己的struct

    通常,得到的是想要存储的变量的地址

      在C语言中使用操作符&

  NSNull

    表示“这里什么都没有”的值

Cocoa里最简单的类了,它只有一个方法

+NSNull  *null

  添加到集合中:

     [contact  setObject: [NSNull  null ]  forKey: @” home fax machine ];

  访问它的方法如下:

    id homefax;

    homefax = [contact objectForKey: @” home fax machine ];

     

    if homefax = = [NSNull null ]

    {

             // . . .  no fax machine .  rats.

    }

原创粉丝点击