Objectivecでリンクリストを作成する方法はありますか?私は初心者で、これまでAppleデベロッパガイドで調べてきましたが、リンクリスト用に事前定義された関数はありません。二重リンクリストはObjective-cのリンクリストと同じですか?
助けてください。
Objectivecでリンクリストを作成する方法はありますか?私は初心者で、これまでAppleデベロッパガイドで調べてきましたが、リンクリスト用に事前定義された関数はありません。二重リンクリストはObjective-cのリンクリストと同じですか?
助けてください。
最初に覚えておくべきことは、Objective-CはC であり、それ以上のものでもあるということです。
次のことは、オブジェクトが (本質的に) ポインター (コンパイラーがオブジェクトを指すことを知っている) として渡されることです。
したがって、独自の連結リストを作成して管理することができ、構造体またはオブジェクトを使用してそれを行うことができます。オブジェクトの場合 (おそらく推奨)、@property
「次の」オブジェクトのクラスに を作成し、好きなように使用してください。同様に、二重リンク リストの場合は、@property
for previous を使用します。
おそらく、Objective-C で「いいね!」リストを気にすることに対する最良の議論の 1 つは、通常、手元に Cocoa フレームワークがあり、リンクされたリストを使用して独自に実装する必要があった機能が豊富にあるということです。たとえば、概念的に単純な NSMutableArray または NSDictionary は、よく構築されたコンポーネントの優れた例であり、通常はリンク リストを必要としません。さらに進んで、コアデータなど...
単純な抽象連結リスト クラスは次のようになります。
@interface LinkedNode : NSObject
@property (nonatomic, strong) id nextNode;
@end
次に、期待どおりに使用します。
id currentNode = myFirstNode;
do {
[currentNode someMessage];
}
while(currentNode = currentNode.nextNode);
これは、構造体で行うよりも「良い」わけではないことに注意してください。「より良い」ビジネスのために、Cocoa クラスに移行し、いわば「より高いレベル」で実装します。