NSString *str =@"I Love You!";
NSString *str = [[NSString alloc] init....]
上邊的一種就是字面量 2.字面數值
NSNumber *intNum = [NSNumbernumberWithInt:1];
NSNumber *floatNum = [NSNumbernumberWithFloat:2.0f];
NSNumber *intNum1 =@1;
NSNumber *floatNum1 [email protected];
下邊的兩種就是字面量數值
NSArray *arr = [NSArrayarrayWithObjects:@"1",@"2",@"3",nil];
//拿數組中的第一個元素
NSString *obj = [arr objectAtIndex:0];
NSArray *arr1 =@[@"1",@"2",@"3"];
//拿數組中的第一個元素
NSString *obj1 = arr1[0];
下邊的是字面數組
4.字面字典
NSDictionary *dic = [NSDictionarydictionaryWithObjectsAndKeys:@"I",@"1",@"Love",@"2",@"You",@"3",nil];
NSString *value1 = [dicobjectForKey:@"1"];
NSDictionary *dic1 =@{@"1":@"I",@"2":@"Love",@"3":@"You"};
NSString *value2 = dic1[@"2"];
下邊的是字面字典
經過字面量的取下標操作
NSArray *arrTest =@[@"1",@"2",@"3"];
NSMutableArray *mutableArr = [NSMutableArrayarrayWithArray:arrTest];
NSDictionary *dicTest =@{@"1":@"I",@"2":@"Love"};
NSMutableDictionary *mutableDic = [NSMutableDictionarydictionaryWithDictionary:dicTest];
[mutableArr replaceObjectAtIndex:0withObject:@"100"];
mutableArr[0] =@"100";
[mutableDic setObject:@"You"forKey:@"1"];
mutableDic[@"1"] =@"You";
經過上邊的字面量,我們可以看出:復雜簡明,經過取下標訪問數組或許字典,代碼更復雜,容易維護,推崇運用字面量。 2.多用類型常量,少用宏定義(這個我之前細說過這個問題)明天提到另一點:在頭文件中extern一個語句,例如:
externconst int itemHeight;
在完成文件中
constint itemHeight = 100;
我們的編譯器在看到頭文件中的extern關鍵字之後,就能明白如何在引入此頭文件的代碼中處置該常量了。這個關鍵字就是通知編譯器,在全局符號表中將會有一個名字叫itemHeight的符號。換句話說,編譯器無需檢查其定義,即允許代碼運用此常量。由於它知道,當鏈接成二進制文件之後,一定是可以找到這個常量的。
atomatic與nonatomatic區別:
具有atomaic特質的獲取辦法會經過鎖定機制來確保其操作的原子性。也就是說,假如兩個線程讀寫同一屬性,那麼不管何時,總能看到無效的屬性值,假如不加鎖(也就是運用nonatomatic),那麼當其中一個線程正在改寫某屬性值時,另外一個線程也許會忽然闖入,把還沒修正好的屬性值讀取出來。發作這種狀況,線程讀到的屬性值能夠就不對了。這麼一聽,對啊,那趕忙用atomaic啊,用什麼nonatomaic?
【編寫高質量的iOS代碼(繼續更新)】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!