iOS 如何盡量減少if else的使用

02F86B0F-C4CE-4946-AF32-F854761A8D23.png

如何減少if else的使用朝扼?

  • 在公司項(xiàng)目中常乘汛眩看見(jiàn)很多if else讓人很煩多的時(shí)候泡嘴,會(huì)讓你頭疼甫恩。
  • 接下來(lái)說(shuō)說(shuō)我是如何解決這個(gè)問(wèn)題的,說(shuō)的不好的地方歡迎提意見(jiàn)
如何解決那么我們就要注意理解和對(duì)MVC的使用了
  • M 數(shù)據(jù)模型

  • V 界面

  • C 控制器
    太多的if else就是對(duì)數(shù)據(jù)模型這里不太熟悉了酌予,我們可以先來(lái)學(xué)習(xí)一下模型( www.baidu.com )
    自己找吧磺箕,哈哈奖慌,說(shuō)重點(diǎn)

  • 舉例一個(gè)小程序就說(shuō)pikerView吧
    (因?yàn)橐呀?jīng)寫好了)pikerView和tableView一樣具有行和列這樣的屬性,我們要善用它松靡,而不是
    if else干嘛干嘛的简僧,這樣也太麻煩了,簡(jiǎn)直是一種煎熬击困,一堆堆的if else想死的心都有了涎劈,如
    何有效的避免它呢广凸?

  • 第一種方式(不是用模型而是直接用數(shù)組阅茶,適用于比較怕麻煩的人)
    貼代碼,手抖:
    - (NSMutableArray *)titleNames
    {
    if (_titleNames == nil) {
    _titleNames = [NSMutableArray array];

               [self setUpTitleNames0];
               [self setUpTitleNames1];
               [self setUpTitleNames2];
          }
          return _titleNames;
      }
      - (void)setUpTitleNames0
      {
          [self.titleNames addObject:self.firstArray];
      }
      - (void)setUpTitleNames1
      {
          [self.titleNames addObject:self.secondArray];
      }
      - (void)setUpTitleNames2
      {
          [self.titleNames addObject:self.thridArray];
      }
    n 列
      - (NSInteger)numberOfComponentsIn
    PickerView:(UIPickerView *)pickerView
      {
          return  self.integer;
      }
      //row 行
      - (NSInteger)pickerView:(UIPickerView *)picker
    View  numberOfRowsInComponent:(NSInteger)component
      {
          
          return [self.titleNames[component] count];
      }
    
  • 是不是很簡(jiǎn)單谅海,這樣就完全不需要判斷了
    我們通過(guò)一個(gè)可變數(shù)組用來(lái)存放東西脸哀,其他3個(gè)數(shù)組存放的需要選擇的那一行的數(shù)據(jù),一個(gè)可變的
    數(shù)組中有了3個(gè)數(shù)組,我們可以把它暫時(shí)看成有了3列數(shù)據(jù)扭吁,這樣我們只需要取出當(dāng)前對(duì)應(yīng)的哪一
    列的數(shù)據(jù)自然就知道了當(dāng)前多少行撞蜂,以此類推下面pikerView的title這些只需要復(fù)制就行了然后
    取出row,就大功告成.

  • 第二種方法用模型 (這個(gè)方法適合于不怕麻煩侥袜,希望看起來(lái)代碼簡(jiǎn)潔好看的那種蝌诡,也有利于以后的修改 ,如果只是自己寫枫吧,不妨用簡(jiǎn)易點(diǎn)的浦旱,沒(méi)辦法誰(shuí)叫老板老催的急呢 ? 對(duì)吧 ! )

  • 這個(gè)我就用tableView來(lái)舉例了哦,因?yàn)樗容^好說(shuō)

  • 貼代碼:
    @property (nonatomic, strong) UIImage *image;

      @property (nonatomic, strong) NSString *title;
    
      + (instancetype)itemWithImage:(UIImage *)image
      title:(NSString *)title;//這個(gè)實(shí)現(xiàn)總會(huì)吧
    
  • 第二份代碼
    @property (nonatomic, strong) NSArray *items;

      + (instancetype)groupWithItems:(NSArray *)items;
    
  • 控制器代碼
    - (void)setUpGroup0
    {
    FDSettingItem *redeemCode = [FDSettingItem itemWithImage:[UIImage imageNamed:@"xxxxx"] title:@"我的劍就是你的賤"];

          // 當(dāng)前組有多少行
          FDSettingGroup *group = [FDSettingGroup groupWithItems:@[redeemCode]];
    
          [self.groups addObject:group];
          
      }
      - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
      {
          return self.groups.count;
      }
    
      - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
      {
          FDSettingGroup *group = self.groups[section];
          
          return group.items.count;
      }
    
  • 搞定了九杂,就這樣

    • 可能寫的不怎么好颁湖,不懂可以在這里問(wèn)我 或者 私信

                            @"啦啦啦德瑪西亞"
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市例隆,隨后出現(xiàn)的幾起案子甥捺,更是在濱河造成了極大的恐慌,老刑警劉巖镀层,帶你破解...
    沈念sama閱讀 216,997評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件镰禾,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡唱逢,警方通過(guò)查閱死者的電腦和手機(jī)羡微,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)惶我,“玉大人妈倔,你說(shuō)我怎么就攤上這事〕窆保” “怎么了盯蝴?”我有些...
    開封第一講書人閱讀 163,359評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵毅哗,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我捧挺,道長(zhǎng)虑绵,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,309評(píng)論 1 292
  • 正文 為了忘掉前任闽烙,我火速辦了婚禮翅睛,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘黑竞。我一直安慰自己捕发,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,346評(píng)論 6 390
  • 文/花漫 我一把揭開白布很魂。 她就那樣靜靜地躺著扎酷,像睡著了一般。 火紅的嫁衣襯著肌膚如雪遏匆。 梳的紋絲不亂的頭發(fā)上法挨,一...
    開封第一講書人閱讀 51,258評(píng)論 1 300
  • 那天,我揣著相機(jī)與錄音幅聘,去河邊找鬼凡纳。 笑死,一個(gè)胖子當(dāng)著我的面吹牛帝蒿,可吹牛的內(nèi)容都是我干的荐糜。 我是一名探鬼主播,決...
    沈念sama閱讀 40,122評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼陵叽,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼狞尔!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起巩掺,我...
    開封第一講書人閱讀 38,970評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤偏序,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后胖替,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體研儒,經(jīng)...
    沈念sama閱讀 45,403評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,596評(píng)論 3 334
  • 正文 我和宋清朗相戀三年独令,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了端朵。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,769評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡燃箭,死狀恐怖冲呢,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情招狸,我是刑警寧澤敬拓,帶...
    沈念sama閱讀 35,464評(píng)論 5 344
  • 正文 年R本政府宣布邻薯,位于F島的核電站,受9級(jí)特大地震影響乘凸,放射性物質(zhì)發(fā)生泄漏厕诡。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,075評(píng)論 3 327
  • 文/蒙蒙 一营勤、第九天 我趴在偏房一處隱蔽的房頂上張望灵嫌。 院中可真熱鬧,春花似錦葛作、人聲如沸寿羞。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)稠曼。三九已至形病,卻和暖如春客年,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背漠吻。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工量瓜, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人途乃。 一個(gè)月前我還...
    沈念sama閱讀 47,831評(píng)論 2 370
  • 正文 我出身青樓绍傲,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親耍共。 傳聞我的和親對(duì)象是個(gè)殘疾皇子烫饼,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,678評(píng)論 2 354

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