iOS開(kāi)發(fā)中,如果能了解OC對(duì)象的特性,合理的使用適合的對(duì)象,會(huì)很大程度簡(jiǎn)化代碼的復(fù)雜度和代碼量。
OC對(duì)象就是一個(gè)個(gè)類(lèi),最常用的是NSArray,NSMutableArray,NString,NSutableString,NSDictionary,NSMutableDictionary。根據(jù)類(lèi)名,就可以知道該類(lèi)是什么類(lèi)型的。下面給大家簡(jiǎn)單介紹一下這些OC對(duì)象,但不會(huì)太深入的講解對(duì)象的使用方法,自己去看API會(huì)更有效果。
首先是NString,NSutableString。它們都是字符串對(duì)象。區(qū)別是前者是不可變的,后者是可變的。NSString不是表示這個(gè)對(duì)象聲明的變量的值不可變,而是表示它初始化以后,你不能改變?cè)撟兞克峙涞膬?nèi)存中的值,但你可以重新分配該變量所處的內(nèi)存空間。舉個(gè)例子:
NSString * str = @"lee is a loner.";
str初始化成功,你不可以更改@"lee is a loner."但你可以做如下操作:
str = @"lee was going die alone."
這樣是沒(méi)錯(cuò)的。
NSString是很強(qiáng)大的,它對(duì)字符串的處理比C語(yǔ)言的處理簡(jiǎn)便的多。因?yàn)樗且粋€(gè)類(lèi),蘋(píng)果給我們封裝了好多實(shí)用的方法,比如:把一個(gè)字符串添加到另一個(gè)字符串的末尾,統(tǒng)計(jì)字符串的個(gè)數(shù),判斷兩個(gè)字符串是否相等,截取指定的字符串等。
NSutableString是一個(gè)可變字符串,意味著你可以追加它的內(nèi)存空間,或者修改它所分配的內(nèi)存空間中的值。它是NSString的子類(lèi),所以NSString的方法它也有。它比NSString多了增刪改查等功能,具體的方法實(shí)現(xiàn)請(qǐng)查閱API。
接著說(shuō)說(shuō)NSArray,NSMutableArray,它們是數(shù)組對(duì)象,字面區(qū)別同上,但是OC的數(shù)組只能存取對(duì)象,所以基本數(shù)據(jù)類(lèi)型是不可以存到數(shù)組里面的,要想存基本數(shù)據(jù)類(lèi)型的 可以轉(zhuǎn)成NSNumber或NSString。數(shù)組對(duì)象也不能存nil,因?yàn)閚il在數(shù)組中是作為結(jié)束標(biāo)志的。使用方法自行查找API。
最后說(shuō)說(shuō)NSDictionary,NSMutableDictionary,他們是字典對(duì)象,字面區(qū)別同上。字典是key-value一個(gè)形式的集合,它是無(wú)序的,意思是對(duì)一個(gè)字典全部輸出的順序可能不一樣,當(dāng)然也沒(méi)辦法對(duì)字典進(jìn)行位置索引什么的。字典是一個(gè)多對(duì)一的集合,只能存在一個(gè)value。此外,字典和數(shù)組一樣,只能存取對(duì)象。關(guān)于字典的一些方法自行查找API。