您好,登錄后才能下訂單哦!
IOS 開發之 NSMutableArray與NSArray 的區別
首先,來看下2者的區別:
NSArray and its subclass NSMutableArray manage collections of objects called arrays. NSArray creates static arrays, and NSMutableArray creates dynamic arrays.
NSMutableArray是NSArray的子類,NSArray建立靜態數組,而NSMutableArray則是動態數組.換句話說,NSArray建立之后不可修改,而NSMutableArray則可以修改.
由于在ObjC中,簡單的看下函數addObject,會發現數組的元素是id類型,也就是說是指針.
- (void)addObject:(id)anObject
如此一來數組里就不能壓入NSUInteger,BOOL之類的非指針型數據了,要命吧..
那要壓入這些內容怎么辦呢?對,類型轉換,ObjC提供了NSNumber來給大家轉換用,NSNumber本身是個指針類型變量.
Inherits from NSValue : NSObject
來個簡單的轉換例子:
NSUInteger count = 1; NSNumber *j = [NSNumber numberWithInt:count]; [ary addObject:j];
還算明了吧,就是用到這個值的時候又要轉換一次,...
昨天剛好又用到數組的亂序,在網上找了個Sample修改了下,代碼如下:
#pragma mark - #pragma mark (NSMutableArray *)randArray:(NSMutableArray *)ary - (NSMutableArray *)randArray:(NSMutableArray *)ary{ NSMutableArray *tmpAry = [NSMutableArray arrayWithArray:ary]; NSUInteger count = [ary count]; for (NSUInteger i = 0; i < count; ++i) { int nElements = count - i; // Seed the random number generator srandom(time(NULL)); int n = (random() % nElements) + i; [tmpAry exchangeObjectAtIndex:i withObjectAtIndex:n]; } return tmpAry; }
如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。