Objective C の init メソッドで異なるクラスのインスタンスを返すことは可能ですか? MyCustomClass というクラスがあります。他に と という 2 つの異なるクラスがClass 1
ありClass2
ます。私が実装しようとしているのは[[MyCustomClass alloc] initWithSomeParameters
、インスタンスを作成するために呼び出すとき、Class1
またはClass2
いくつかの条件に応じて呼び出すときです。
MyCustomClass.m
:
#import "MyCustomClass.h"
#import "Class1.h"
#import "Class2.h"
-(id) initWithSomeParameters: (id) params{
id myClass;
if (someCondition){
myClass = [[Class1 alloc] initWithSomeParameters:(id) params];
[myClass setSomething:something];
}else{
myClass = [[Class2 alloc] initWithSomeParameters:(id) params];
[myClass setSomething:something];
}
return myClass;
}
...そして後で電話します
id myCustomClass = [[MyCustomClass alloc] initWithSomeParameters:(id) params];
これは間違ったアプローチですか?もしそうなら、どれが正しいでしょうか?