effect_objectC
第三條
盡量使用@class先告訴編譯器,再在.m文件中導(dǎo)入@import 某個文件
第四條
多用字面量語法,少用與之等價的方法
例子:
NSNumber*number=[NSNumbernumberWithInt:2];// error
NSNumber*number2=@2;// right
intx=2;
floaty=5.23;
NSNumber*number3=@(x*y);
數(shù)組字面值
格式:
需要用[]來初始化
NSArray*array=[[NSArrayalloc]initWithObjects:@"dog",@"cat",@"mouse",nil];
NSArray*array1=@[@"dog",@"cat",@"mouse”];
注意的是:創(chuàng)建字面值數(shù)組時,如果括號中對象有nil的對象,則會拋出異常。如果是第一種方法則不回,但是會出現(xiàn)一個更大的問題
idobject1=@"dog";
idobject2=nil;
idobject3=@"cat";
NSArray*array=[[NSArrayalloc]initWithObjects:object1,object2,object3,nil];/**只有一個dog,因為object2是nil,結(jié)束了數(shù)組的創(chuàng)建*/
NSArray*array1=@[object1,object2,object3];
//拋出異常
總結(jié): 所以使用字面值的方法創(chuàng)建會更安全
字面值創(chuàng)建字典
格式:
字典需要用{}來初始化字面值
NSDictionary*dict=[[NSDictionaryalloc]initWithObjectsAndKeys:@"Matt",@"fistname",[NSNumbernumberWithInt:28],@"age",
nil];
NSDictionary*dict2=@{@"firstname":@"Matt",@"age":@28};
總結(jié):局限性:使用字面值創(chuàng)建出來的字符串,數(shù)組,字典對象都是不可變的。想要變成可變版本,需要復(fù)制一份。
NSMutableArray*mutabbleArray=[@[@1,@2,@3]mutableCopy];
要點:
1.應(yīng)該通過下標操作來訪問數(shù)組的下標或字典中的鍵所對應(yīng)的元素
2.使用字面值創(chuàng)建數(shù)組或者字典時,若值有Nil時,會拋出異常。
第四條
使用常量來代替#define 宏
在實現(xiàn)文件中使用static const來定義”只在編譯單元內(nèi)可見的常量"