OC拆解一維數(shù)組拆成二維數(shù)組的"小陰招"

前言

這篇文章,我實在不知道如何去起名字了,如果你看到了這篇文章,希望我所說的東西對你有過幫助.
事情是這樣的,iOS開發(fā)肯定都會接觸UITableView,我們根據(jù)服務(wù)器返回的不同數(shù)據(jù),進(jìn)行相應(yīng)的展示,一般來說,有分組的,服務(wù)器往往返回一個二維數(shù)組,第一層數(shù)組元素的個數(shù)決定了section的個數(shù),里層數(shù)組決定了相應(yīng)section中row的行數(shù),這是開發(fā)中沒有什么處理難度的事,但是,就因為這個但是,讓我在開發(fā)中頭疼了一天,就像上面說的,我要做一個分組數(shù)不確定每組行數(shù)不確定的一個tableView,但是服務(wù)器返回的是一個摻雜了所有數(shù)據(jù)的一維數(shù)組,這個數(shù)組里都對應(yīng)了若干個大字典,我的分組依據(jù)就是每個字典中的一個key對應(yīng)的value

我相信你蒙了

來看看下面這段我模擬的假數(shù)據(jù)

listData:[
    
          {"name":"iOScoderZZJ","age":18,"class":"一班"},
          {"name":"xiaohong","age":20,"class":"二班"},
          {"name":"xiaoli","age":25,"class":"三班"},
          {"name":"xiaopeng","age":30,"class":"一班"}
          ......
    ]

我們的需求是這樣的, listdata數(shù)組中有多少個元素我們是不確定的,class的種類數(shù)是不確定的(一班,二班....十五班...),如上面那段數(shù)據(jù),我們分組的依據(jù)就是class,我們要把相同class的數(shù)據(jù)分解到多個數(shù)組中,方便tableview去展示
現(xiàn)在的已知:一個大數(shù)組
現(xiàn)在的未知:數(shù)組元素個數(shù),分類標(biāo)識的種類數(shù)
現(xiàn)在的需求:拆解成tableview可用的二維數(shù)組,class種類數(shù)決定了section個數(shù).每類class的個數(shù)決定了相應(yīng)section的row數(shù)

解決方法

我們利用字典和數(shù)組的相關(guān)知識,把數(shù)組拆分成以class為key,class相同的數(shù)組為value的若干字典,拿到這個字典可以利用字典的allKeys allValues兩個屬性得到外層數(shù)組的元素個數(shù),并進(jìn)行響應(yīng)的操作
核心代碼 ↓ ↓ ↓ ↓

NSMutableDictionary * dic = [NSMutableDictionary dictionary];
    if(listData)
    {
        //遍歷
        [listData enumerateObjectsUsingBlock:^(NSDictionary* obj, NSUInteger idx, BOOL * _Nonnull stop) {
            NSMutableArray *array = dic[obj[@"class"]];
            if(!array)
                //如果數(shù)組不存在創(chuàng)建
                array = @[obj].mutableCopy;
            else
              //如果存在添加元素
                [array addObject:obj];
           //根據(jù)不同的key,創(chuàng)建對應(yīng)的字典
            [dic setObject:array forKey:obj[@"class"]];
        }];
        self. classDic = dic;
    }

實戰(zhàn)截圖

WechatIMG3.jpeg

打印結(jié)果

WechatIMG4.jpeg

總結(jié)

這樣我們就巧妙的拆解了這個不能直接拿來就用的一維數(shù)組,我們巧妙的運用了字典這種數(shù)據(jù)類型,如果大家有更好的方法,歡迎留言,今天的分享就到這里了,謝謝大家的閱讀
我是iOS開發(fā)的小菜雞,希望有一天能成為雄鷹
旅途很長,還需修行

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子嗅虏,更是在濱河造成了極大的恐慌,老刑警劉巖蒜鸡,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異昼牛,居然都是意外死亡术瓮,警方通過查閱死者的電腦和手機(jī)康聂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進(jìn)店門贰健,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人恬汁,你說我怎么就攤上這事伶椿。” “怎么了氓侧?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵脊另,是天一觀的道長。 經(jīng)常有香客問我约巷,道長偎痛,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任独郎,我火速辦了婚禮踩麦,結(jié)果婚禮上枚赡,老公的妹妹穿的比我還像新娘。我一直安慰自己谓谦,他們只是感情好贫橙,可當(dāng)我...
    茶點故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著反粥,像睡著了一般卢肃。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上才顿,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天莫湘,我揣著相機(jī)與錄音,去河邊找鬼郑气。 笑死逊脯,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的竣贪。 我是一名探鬼主播军洼,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼演怎!你這毒婦竟也來了匕争?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤爷耀,失蹤者是張志新(化名)和其女友劉穎甘桑,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體歹叮,經(jīng)...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡跑杭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了咆耿。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片德谅。...
    茶點故事閱讀 40,144評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖萨螺,靈堂內(nèi)的尸體忽然破棺而出窄做,到底是詐尸還是另有隱情,我是刑警寧澤慰技,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布椭盏,位于F島的核電站,受9級特大地震影響吻商,放射性物質(zhì)發(fā)生泄漏掏颊。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一艾帐、第九天 我趴在偏房一處隱蔽的房頂上張望乌叶。 院中可真熱鬧改化,春花似錦、人聲如沸枉昏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽兄裂。三九已至句旱,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間晰奖,已是汗流浹背谈撒。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留匾南,地道東北人啃匿。 一個月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像蛆楞,于是被迫代替她去往敵國和親溯乒。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,092評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 概述在iOS開發(fā)中UITableView可以說是使用最廣泛的控件豹爹,我們平時使用的軟件中到處都可以看到它的影子裆悄,類似...
    liudhkk閱讀 9,061評論 3 38
  • *7月8日上午 N:Block :跟一個函數(shù)塊差不多,會對里面所有的內(nèi)容的引用計數(shù)+1臂聋,想要解決就用__block...
    炙冰閱讀 2,489評論 1 14
  • { 24光稼、Sqlite數(shù)據(jù)庫 1、存儲大數(shù)據(jù)量孩等,增刪改查艾君,常見管理系統(tǒng):Oracle、MSSQLServer肄方、DB...
    CYC666閱讀 940評論 0 1
  • 看《親愛的客棻ⅲ》,劉濤對王珂說:以后到了70歲扒秸,80歲時怎么怎么的播演。我轉(zhuǎn)身對S說:“以后我要活到100歲冀瓦,周游世界...
    Mrsmoly閱讀 146評論 0 1
  • Sketch的出現(xiàn)是UI設(shè)計屆的一場暴風(fēng)雨伴奥,為此我們歡呼雀躍。但是現(xiàn)在可以讓這場暴風(fēng)雨更猛烈些翼闽,提高工作效率拾徙。所以...
    Doria2016閱讀 4,891評論 3 29