日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

懒加载 字典转模型 自定义cell

發布時間:2023/11/27 生活经验 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 懒加载 字典转模型 自定义cell 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1?懶加載:

1>??什么是懶加載?

懶加載又稱為延時加載,即在系統調用的時候加載,如果系統不調用則不會加載.所謂的懶加載其實就是重寫其?get?方法.

2>??特點:在使用懶加載的時候要先判斷該方法是否已經存在,如果不存在則再進行實例化.

3>??優點:

  • ?不必將創建對象的方法都寫在?viewDidLoad?里面,代碼可讀性更強.
  • ?每個控件的getter?方法分別負責各自的實例化處理,獨立性強,耦合性低.

4>??使用步驟:

  • ?聲明一個屬性.該屬性可以是私有屬性也可以是在. h?文件中聲明的屬性.懶加載的對象是一個屬性.
  • ?在.m?中的?viewDidLoad外面重寫懶加載,即重寫其?getter?方法
  • ?先判斷?_對象?是否存在,如果不存在則,在?if?中實例化屬性對象,并設置對象的屬性,并添加其特有的方法
  • ?返回?_對象

?

2?字典轉模型

1>???什么是字典轉模型?

字典數據/數組(可以是?plist?文件中的數據也可以是網絡后臺的數據等)轉化為模型對象/數組.

2>???注意

模型要提供可以傳入字典參數的構造方法.(一個對象方法一個類方法)

- (instancetype)initWithDict:(NSDictionary *)dict;

+ (instancetype)xxxWithDict:(NSDictionary *)dict;

3>???提示:在模型中盡量的使用自讀屬性可以進一步降低代碼的耦合性

4>???優點:

  • ?將字典中的數據封裝到一個模型類中,有?MVC?框架思想的優點,可以降低耦合性
  • ?所有的字典轉模型可以寫在一處,便于管理,同時也可以降低代碼的出錯率
  • ?字典轉模型后,直接把字典中的數據轉移到模型的屬性中,外界可以直接調用模型的屬性來獲取數據,從而可以提高代碼的編碼效率
  • ?由于模型是一個單獨的類中進行的,外界不用關心類中的細節,只要使用就可以,更好的體現了面向對象的思想.

5>???使用步驟

  • ?在模型的.h?文件中聲明所需要的所有屬性
  • ?在模型的.h實例化兩個方法

- (instancetype)initWithDict:(NSDictionary *)dict;

+ (instancetype)appInfoWithDict:(NSDictionary *)dict;

  • ?在模型的.m?文件中,通過實現兩個方法獲取數據

- (instancetype)initWithDict:(NSDictionary *)dict{

?? self = [super init];

?????if?(self) {//給聲明的屬性賦值

???????? self.name = dict[@"name"];

???????? self.icon = dict[@"icon"];

???? }

?????return?self;

}

+ (instancetype)appInfoWithDict:(NSDictionary *)dict{

?????return?[[self alloc] initWithDict:dict];

}

  • ?聲明要空控件的屬性,并懶加載中直接實例化賦值
  • ?在?VC?的. m?文件中聲明一個目標控件的屬性
  • ?懶加載控件,并在懶加載的判斷為空的時候,通過?bundle?à?path?à?通過?path?路徑把數據轉到模型(數組)中?à?創建一個臨時可變數組(用于盛放數據)?à?遍歷通過路徑獲取的數據?à?給臨時數組賦值?à?將臨時數組賦值給模型對象

3?自定義?cell

1>??什么是自定義?cell

自定義?cell?即?tableView,collectionView,scrollView中的?cell?使用的時候不能滿足我們使用?cell?的需求,需要自己定義一個?cell.

2>??優點:

  • ?自定義?cell?是繼承自系統的?cell,?因此它具有系統?cell?的所有的屬性和方法
  • ?自定義?cell?可以在自定義的類中擴展屬性和方法,供外界使用.

3>??使用方法

自定義?cell?的方法有三種

  • ?純代碼

1?在自定義?cell?類的.h?文件中聲明要增加的屬性和方法

2?在自定義cell?類的.m?文件中實現增加的方法.

該類的構造方法?initWithStyle:--- reuseIdentify?方法

調用父類的構造方法

判斷?self是否存在

返回?self

3?在?VC?中的數據源方法中的第三個方法中將系統的?cell?換成自定義的?cell?的類即可擁有自定義?cell?擴展的屬性和方法.

先創建一個?static?的重用標示符,然后通過重用標示符去重用池中尋找,假如通過重用標示符找不到?cell?則通過自定義的?cell?創建?cell,?最后返回?cell.

  • ?Xib

實現步驟:

1?創建一個類?繼承自?UITableViewCell/

UICollectionViewCell/UIScrollViewCell

2?創建一個和步驟一同名的?xib

3?將一個?cell拖到xib窗口中,并在屬性檢查器上

    (1)修改Custom Class為?創建從類名

    (2)設定其重用標識符(Identifier),該重用標示符要和?VC?中定義的重用標示符一樣.

????? 4?在?xib?中進行布局

5?將?xib?中的控件拖線到cell上

6?使用的時候,和純代碼使用類似,只是將創建?cell?的方法改用為?xib?的方法

  • ?storyboard

該方法是最簡單的一種方法,但缺點也很多,在開發中基本上用不到,思路就是在storyboard的?cell?中直接操作.

?

轉載于:https://www.cnblogs.com/ansyxpf/p/5494240.html

總結

以上是生活随笔為你收集整理的懒加载 字典转模型 自定义cell的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。