effect_objectC的学习

effect_objectC

第三条

尽量使用@class先告诉编译器,再在.m文件中导入@import 某个文件

第四条

多用字面量语法,少用与之等价的方法

例子:

NSNumber*number=[NSNumbernumberWithInt:2];// error

NSNumber*number2=@2;// right

intx=2;

floaty=5.23;

NSNumber*number3=@(x*y);

数组字面值

格式:

需要用[]来初始化

NSArray*array=[[NSArrayalloc]initWithObjects:@"dog",@"cat",@"mouse",nil];

NSArray*array1=@[@"dog",@"cat",@"mouse”];

注意的是:创建字面值数组时,如果括号中对象有nil的对象,则会抛出异常。如果是第一种方法则不回,但是会出现一个更大的问题

idobject1=@"dog";

idobject2=nil;

idobject3=@"cat";

NSArray*array=[[NSArrayalloc]initWithObjects:object1,object2,object3,nil];/**只有一个dog,因为object2是nil,结束了数组的创建*/

NSArray*array1=@[object1,object2,object3];

//抛出异常

总结: 所以使用字面值的方法创建会更安全

字面值创建字典

格式:

字典需要用{}来初始化字面值

NSDictionary*dict=[[NSDictionaryalloc]initWithObjectsAndKeys:@"Matt",@"fistname",[NSNumbernumberWithInt:28],@"age",

nil];

NSDictionary*dict2=@{@"firstname":@"Matt",@"age":@28};

总结:局限性:使用字面值创建出来的字符串,数组,字典对象都是不可变的。想要变成可变版本,需要复制一份。

NSMutableArray*mutabbleArray=[@[@1,@2,@3]mutableCopy];

要点:

1.应该通过下标操作来访问数组的下标或字典中的键所对应的元素

2.使用字面值创建数组或者字典时,若值有Nil时,会抛出异常。

第四条

使用常量来代替#define 宏

在实现文件中使用static const来定义”只在编译单元内可见的常量"

你可能感兴趣的:(effect_objectC的学习)