现在的位置: 首页 > 综合 > 正文

Object-C学习笔记八—–Foundation Kit快速教程NSArray NSEnumerator NSDictioary NSNumber NSValue NSNull

2017年10月25日 ⁄ 综合 ⁄ 共 1927字 ⁄ 字号 评论关闭

1。NSArray有两个限制,首先它只能存储objective-c的对象,其次,它也不能存储nil(对象的0值或null值)因为结束时用nil,代表列表结束。

    NSArray *array ;

    array=[NSArrayarrayWithObjects:@"one",@"two",@"three",nil];

   
for
(int i=0;i<[arraycount]; i++) {

       
NSLog
(@"index %d has %@",i,[array
objectAtIndex
:i ]);

    }

     数组可以拆分,用componentsSeparatedByString方法 ,用componentsJoinedByString来合并

NSString *string =@"oop:ack:bork:greeble:ponies";

   NSArray *chunks=[stringcomponentsSeparatedByString:@":"];//通过:把字符串分解后放入数组中

    

    string =[chunkscomponentsJoinedByString:@":-)"];

   
NSLog
(@"%@",string);

NSArray也是不可变对象,同样它也有一个子类时可变的NSMutableArray。

addObject在数组末尾添加对象。

removeObjectAtIndex删除。

2。NSEnumerator

NSMutableArray *array;

    array=[NSMutableArrayarrayWithCapacity:17];

   
for
(int i=0; i<4; i++) {

       
Tire
*tire=[Tire
new
];

        [array
addObject
:tire];

    }

    

   
NSEnumerator
*enumerator;

    enumerator= [arrayobjectEnumerator];//向数组请求枚举器

从后向前浏览集合,reverseObjectEnumerator方法

  id thingie;

   
while
(thingie=[enumerator nextObject]) {

       
NSLog
(@"I found %@",thingie);

    }


快速枚举  类似c#里面的---foreach

  for (NSString *stringin array) {

       
NSLog
(@"I found %@",string);

    }

遍历数组3中方式,通过索引,使用NSEnumerator 和快速枚举。


3。NSDictionary

dictionaryWithObjectAndKeys创建字典 ,并且以nil作为终止符。

Tire *t1=[Tirenew];

    
Tire
*t2=[Tire
new
];

    
Tire
*t3=[Tire
new
];

    
Tire
*t4=[Tire
new
];

   
NSDictionary
*tires;

    tires=[NSDictionarydictionaryWithObjectsAndKeys:t1,@"front-left",t2,@"front-right",t3,@"back-left",t4,@"back-right",nil];

    Tire *tire=[tires
objectForKey
:@"back-right"];//objectForKey获取字典中的值

    

NSMutableDictionary 可用dictionaryWithCapacity方法创建可变字典。

还有一种方法创建字典就是用setObject: forkey:

 NSMutableDictionary *tires;

    tires =[NSMutableDictionarydictionary];

    [tires
setObject
: t1 forkey:@"front-left"];

    [tires
setObject
: t2 forKey:@"front-right"];

    [tires
setObject
: t3 forkey:@"back-left"];

    [tires
setObject
: t4 forKey:@"back-right"];//向字典添加元素。

字典删除removeObjectForKey:   

    [tiresremoveObjectForKey:@"back-left"];//从字典中删除。

NSArray和NSDictionary只能存储对象,不能直接存储刃虎基本类型的数据。

4。NSValue可以包装任意值。

5。NSNumber就是将基本数据类型封装成对象。有点像C#里面的装箱和拆箱。

6。NSNull

抱歉!评论已关闭.