objective-c動的データ型
1398 ワード
静的データ型
特徴:
動的データ型
idは動的データ型##
機能:
//Person Student
//Person eat ,Student study
Person *p = [Person new];
[p eat]; //
[p study]; //
Student * s = [Student new];
[s eat]; //
[s study]; //
Person *per = [Student new];//
//per Student , Student
[per eat]; //
[per study]; //
id obj = [Person new];
[obj eat]; //
[obj study]; //
id obj1 = [Student new];
[obj1 eat]; //
[obj1 study]; //
弊害:動的データ型はいずれかのメソッドを呼び出すことができるため、自分のメソッドに属していないメソッドを呼び出す可能性があり、エラーを報告することもなく、実行時のエラーを引き起こす可能性があります.
適用シーン:マルチステート、コード量を減らすことができます.サブクラス固有のメソッドを呼び出すのを避けるには、強制的なタイプ変換が必要です.
, , ,
if([obj isKindOfClass:[Student class]])
{
//isKindOfClass, ,
[obj studyt];
}
if([obj isMemberOfClass:[Student class]])
{
//
[obj student];
}