Objective-C中关于NSArray, NSDictionary, NSNumber等写法的进化
当前位置:以往代写 > C/C++ 教程 >Objective-C中关于NSArray, NSDictionary, NSNumber等写法的进化
2019-06-13

Objective-C中关于NSArray, NSDictionary, NSNumber等写法的进化

Objective-C中关于NSArray, NSDictionary, NSNumber等写法的进化

副标题#e#

从xcode4.4开始,LLVM4.0编译器为Objective-C添加一些新的特性。建设数组NSArray,哈希表NSDictionary, 数值 工具NSNumber时,可以像NSString的初始化一样简朴利便。妈妈再也不担忧措施写到手发酸了。

有乐趣的伴侣可以存眷LLVM编译器的相关文档:http://clang.llvm.org/docs/ObjectiveCLiterals.html

关于NSDictionary和NSNumber的例子来自:http://cocoaheads.tumblr.com/post/17757846453/objective-c- literals-for-nsdictionary-nsarray-and

I. NSArray

首先长短经常用的NSArray,NSMutableArray。NSArray是一个初始化后就牢靠的静态数组。假如想对数组的元素举办 插入,删除,更新等操纵,就得利用Objective-C 的动态数组NSMutableArray。

在LLVM4.0之前,NSArray的初始化要领如下。注: 以下的要领在LLVM4.0之后也可以继承利用。

//LLVM4.0之前 NSArray的初始化

NSArray *oldOne = [NSArray arrayWithObjects:@"1st", @"2nd", @"3th", nil];

// 取得数组第2个值

NSString *s = [oldOne objectAtIndex:1];

在LLVM4.0之后,NSArray的初始化要领如下。

NSArray *newOne [email protected][@"1st", @"2nd", @"3th”];

// 取得数组第2个值

NSString *s = newOne[1];

出格要说一下NSMutableArray。LLVM4.0之前,假如你要更新数组的某个元素,一般利用下面的要领。

//LLVM4.0之前 NSMutableArray的初始化

NSMutableArray *oldMutable = [NSMutableArray arrayWithArray: old];

[mutable replaceObjectAtIndex:1 withObject:@"disposed"]; //更新某个元素

在编写一些常用算法时,下面的特性导致编写起来有一点贫苦。

/*想更新NSMutableArray的某个元素?请先初始化这个元素*/

NSMutableArray *oldMutable = [[NSMutableArray alloc] init]];

/*必需如下给每个元素赋一个初值,不然exception会产生

for (int h = 0; h < 5; h++) {

   [oldMutable addObject:@"1"];

}

@try{

    [mutable replaceObjectAtIndex:1 withObject:@"disposed"];

 }

@catch(NSException *exception){

     NSLog(@“%@“, [exception description]);

}

这而LLVM4.0简化了这一个进程,可以用如下方法简朴完成。

//LLVM4.0之后

NSMutableArray *newMutable = [NSMutableArray alloc] init];

newMutable[2] = @"myObject";


#p#副标题#e#

溘然以为世界清爽了不少,对付熟悉C语言和java等的童鞋来说,是不是以为亲切多了?

关于NSDictionary和NSNumber的变革如下, 就不细说啦。

II.NSDictionary

一般性的写法:

dict = [NSDictionary dictionaryWithObjects:@[o1, o2, o3]

                                  forKeys:@[k1, k2, k3]];

LLVM4.0之前后:

dict = @{ k1 : o1, k2 : o2, k3 : o3 };

III. NSNumber

一般性的写法:

NSNumber *number;

number = [NSNumber numberWithChar:’X’];

number = [NSNumber numberWithInt:12345];

number = [NSNumber numberWithUnsignedLong:12345ul];

number = [NSNumber numberWithLongLong:12345ll];

number = [NSNumber numberWithFloat:123.45f];

number = [NSNumber numberWithDouble:123.45];

number = [NSNumber numberWithBool:YES];

LLVM4.0之前后:

NSNumber *number;

number = @’X’;

number = @12345;

number = @12345ul;

number = @12345ll;

number = @123.45f;

number = @123.45;

number = @YES;

查察本栏目

    关键字:

在线提交作业