欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

IOS 開發(fā)之 NSMutableArray與NSArray 的區(qū)別

 更新時(shí)間:2017年09月03日 14:19:29   投稿:lqh  
這篇文章主要介紹了IOS 開發(fā)之 NSMutableArray與NSArray 的區(qū)別的相關(guān)資料,希望通過本文能掌握這部分內(nèi)容,需要的朋友可以參考下

IOS 開發(fā)之 NSMutableArray與NSArray 的區(qū)別

首先,來看下2者的區(qū)別:

NSArray and its subclass NSMutableArray manage collections of objects called arrays.
 NSArray creates static arrays, and NSMutableArray creates dynamic arrays.

NSMutableArray是NSArray的子類,NSArray建立靜態(tài)數(shù)組,而NSMutableArray則是動(dòng)態(tài)數(shù)組.換句話說,NSArray建立之后不可修改,而NSMutableArray則可以修改.

由于在ObjC中,簡(jiǎn)單的看下函數(shù)addObject,會(huì)發(fā)現(xiàn)數(shù)組的元素是id類型,也就是說是指針.

-
 (void)addObject:(id)anObject

如此一來數(shù)組里就不能壓入NSUInteger,BOOL之類的非指針型數(shù)據(jù)了,要命吧..

那要壓入這些內(nèi)容怎么辦呢?對(duì),類型轉(zhuǎn)換,ObjC提供了NSNumber來給大家轉(zhuǎn)換用,NSNumber本身是個(gè)指針類型變量.

Inherits from NSValue : NSObject

來個(gè)簡(jiǎn)單的轉(zhuǎn)換例子:

NSUInteger
 count = 1;

NSNumber
 *j = [NSNumber numberWithInt:count];

[ary
 addObject:j];

還算明了吧,就是用到這個(gè)值的時(shí)候又要轉(zhuǎn)換一次,...

昨天剛好又用到數(shù)組的亂序,在網(wǎng)上找了個(gè)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;

}

如有疑問請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • iOS開發(fā)筆記之鍵盤、靜態(tài)庫、動(dòng)畫和Crash定位

    iOS開發(fā)筆記之鍵盤、靜態(tài)庫、動(dòng)畫和Crash定位

    最近在學(xué)習(xí)iOS開發(fā),進(jìn)行了一些實(shí)戰(zhàn),所以下面這篇文章主要給大家介紹了關(guān)于iOS開發(fā)筆記之鍵盤、靜態(tài)庫、動(dòng)畫和Crash定位的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2018-04-04
  • iOS開發(fā)之視圖切換

    iOS開發(fā)之視圖切換

    在iOS開發(fā)中視圖的切換是很頻繁的,獨(dú)立的視圖應(yīng)用在實(shí)際開發(fā)過程中并不常見,除非你的應(yīng)用足夠簡(jiǎn)單。在iOS開發(fā)中常用的視圖切換有三種,今天我們將一一介紹,希望大家能夠喜歡。
    2016-04-04
  • iPhoneX 媒體查詢適配的方法教程

    iPhoneX 媒體查詢適配的方法教程

    這篇文章主要介紹了iPhoneX 媒體查詢適配的方法教程,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-11-11
  • IOS使用TestFlight測(cè)試的使用方法

    IOS使用TestFlight測(cè)試的使用方法

    TestFlight是iOS系統(tǒng)上用來測(cè)試軟件的,打開了這個(gè)APP就相當(dāng)于打開了新世界的大門,這個(gè)APP直接可以改變你對(duì)IOS系統(tǒng)封閉的看法,讓你擁有媲美安卓用戶的更多自主權(quán)!
    2022-12-12
  • IOS 靜態(tài)庫和Framework區(qū)別

    IOS 靜態(tài)庫和Framework區(qū)別

    這篇文章主要介紹了IOS 靜態(tài)庫和Framework區(qū)別的相關(guān)資料,這里對(duì)動(dòng)態(tài)庫與靜態(tài)庫做比較,選擇什么時(shí)候使用庫文件,需要的朋友可以參考下
    2016-12-12
  • iOS開發(fā)之AssetsLibrary框架使用詳解

    iOS開發(fā)之AssetsLibrary框架使用詳解

    這篇文章主要介紹了iOS開發(fā)之AssetsLibrary框架使用詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-09-09
  • 替代pod update速度慢的lg_pod_plugin安裝使用詳解

    替代pod update速度慢的lg_pod_plugin安裝使用詳解

    這篇文章主要介紹了替代pod update速度慢lg_pod_plugin安裝使用方式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • iOS應(yīng)用中UICollectionViewCell定制Button

    iOS應(yīng)用中UICollectionViewCell定制Button

    這篇文章主要介紹了iOS應(yīng)用中UICollectionViewCell如何定制Button,設(shè)置每行顯示的按鈕的個(gè)數(shù),自定制按鈕的顯示樣式,感興趣的小伙伴們可以參考一下
    2016-08-08
  • 如何去掉Xcode工程中某種類型的警告

    如何去掉Xcode工程中某種類型的警告

    這篇文章主要給大家介紹了關(guān)于如何去掉Xcode工程中某種類型的警告,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Xcode具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • iOS粒子路徑移動(dòng)效果 iOS實(shí)現(xiàn)QQ拖動(dòng)效果

    iOS粒子路徑移動(dòng)效果 iOS實(shí)現(xiàn)QQ拖動(dòng)效果

    這篇文章主要為大家詳細(xì)介紹了iOS粒子路徑移動(dòng)效果,iOS實(shí)現(xiàn)QQ拖動(dòng)效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07

最新評(píng)論