「BaseEntry」というクラスと、「Base Entry」のサブクラスである「EntryFoo」や「EntryBar」などの特定のクラスがあります。
BaseEntry のサブクラスである Object を返す getEntry 関数があります。Java ではこれは問題になりませんが、iOS 用の Objective-C でこれを修正する方法がわかりません。
ご協力いただきありがとうございます!アレックス
Objective-C でこれを行う標準的な方法は、'id' 型のオブジェクトを返すことです。Object
Javaのように考えてください。ただし、id
キャストなしで戻り値を型指定された値に割り当てることができるという点で、少し優れています。
明確にするために、オプションは次のとおりです。
// Assuming -(BaseEntry*)getEntry;
id entry = [obj getEntry];
[entry messageOnlyOnFooEntry];
// Assuming -(BaseEntry*)getEntry; - note cast required
FooEntry *entry = (FooEntry*)[obj getEntry];
[entry messageOnlyOnFooEntry];
// Assuming -(id)getEntry; - no cast required
FooEntry *entry = [obj getEntry];
[entry messageOnlyOnFooEntry];
BaseEntry gE = [[BaseEntry alloc] init]; // Allocate and init a BaseEntry object
returnGetEntryHere = [ge getEntry]; // This will execute getEntry which is a method in BaseEntry
今まで何か試したことはありますか?コードを投稿すると、Objective-cプロジェクトに関する誤解や欠点を他の人が手伝ってくれるかもしれません。