OC泛型的使用

泛型的作用:

1.限制類型
2.提高代碼規(guī)范,減少溝通成本,一看就知道集合中是什么類型

@property (nonatomic,strong) NSMutableArray<TableModel *> *dataSource;
泛型定義用法:

類型<限制類型>,在聲明類的時候,在類的后面<泛型名稱>

@interface TableModel<DogType> : NSObject
泛型的好處

1.從數(shù)組中取出來,可以使用點(diǎn)語法

    self.dataSource[0].height

2.給數(shù)組添加元素,有提示

 self.dataSource addObject:<#(nonnull TableModel *)#>

id類型是不能使用點(diǎn)語法的

什么時候使用泛型

在聲明類的時候,不確定某種屬性或方法類型,在使用這個類的時候才確定,就可以采用泛型
如果沒有自定義泛型,默認(rèn)就是id類型

定義
@interface TableModel<DogType> : NSObject
@property(nonatomic,strong)DogType dog;
@property(nonatomic,assign)CGFloat height;

@end
@interface BigDog : NSObject
@property(nonatomic,copy)NSString *name;

@end
@interface SimlDog : NSObject
@property(nonatomic,copy)NSString *name;

@end
使用
    BigDog *a = [[BigDog alloc]init];
    SimlDog *b = [[SimlDog alloc]init];

    TableModel<BigDog *> *dic1 = [[TableModel alloc]init];
    dic1.height = 10;
    dic1.dog = a;
    TableModel<SimlDog *> *dic2 = [[TableModel alloc]init];
    dic2.height = 10;
    dic2.dog =b;
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容