Sie können die beliebige Datenstruktur verwenden, die in C oder C ++ mit dem iPhone SDK implementiert wurde.
Zum Beispiel verwende ich die Standardbibliothek sehr oft.
Daneben können Sie auch die komplexen Datenstrukturen von Cocoa verwenden, die wie folgt verfügbar sind:
Cocoa (ein Framework, das sowohl für Mac als auch für iOS verfügbar ist) implementiert mehrere gängige Sammlungsarten , einschließlich NSArray
, NSDictionary
und NSSet
, sowie ihre veränderbaren Varianten. (Leopard führte auch NSPointerArray
, NSHashMap
und NSHashTable
ein, ein Array / Wörterbuch / Satz mit zusätzlichen Optionen (wie z. B. schwache Referenzen), die sie in einer Garbage-Collection-Umgebung recht praktisch machen sind derzeit auf dem iPhone nicht verfügbar und würden im Moment wenig Sinn machen, da iOS die Garbage Collection nicht unterstützt.) Diese Klassen sind extrem schnell und eignen sich für den allgemeinen Gebrauch in jeder Cocoa-Anwendung.
Neben diesen bereitgestellten Strukturen haben Sie mehrere Möglichkeiten: (1) Erstellen Sie komplexere Strukturen, indem Sie diese als Bausteine verwenden, (2) vorhandenen Code von Drittanbietern nutzen oder (3) Ihre eigenen Datenstrukturen von Grund auf neu erstellen.
Eine Option ist CHDataStructures.framework , ein Open-Source-Objective-C-Framework, das ich pflege. Es implementiert mehrere andere allgemeine Datenstrukturen, z. B. Stack / Queue / Deque, verknüpfte Listen, sortierte Sets und mehr. Diese Strukturen übernehmen NSCoding und NSCopying (plus NSFastEnumeration auf 10.5+), so dass sie nahtlos mit dem nativen Objective-C-Code arbeiten. Das Projekt ermöglicht es Ihnen, eine statische Bibliothek für die Verwendung auf dem iPhone zu erstellen. Da dieses Framework Open Source ist, können Sie bei Bedarf sogar nur den relevanten Code direkt in Ihr Projekt einfügen.
Während Sie C ++ - und STL-Strukturen verwenden können, habe ich festgestellt, dass das Mischen von Objective-C und C ++ eher verwirrend ist und zu lästigen Fehlern führt, insbesondere für Anfänger. Dies ist keine Bash gegen C ++, nur ein "When in Rome" -Prinzip. Bei Verwendung von C ++ ist STL natürlich der bevorzugte Ansatz. Wenn Sie bereits in C ++ mixen, sind Sie wahrscheinlich damit vertraut, dass STL eine gute Wahl ist. Trotzdem finde ich, dass die Verwendung nativer Cocoa-Sammlungen mehr selbstverständlichen, lesbaren Code erzeugt.
Die Objective-C-Sprache stellt keine inhärenten Datenstrukturen wie Verkettete Listen usw. bereit. Da sie jedoch auf der C / C ++ - Codebasis basiert, kann alles, was in C oder C ++ implementiert werden kann, direkt in Objective durchgeführt werden -C, einschließlich verknüpfter Listen und anderer Datenstrukturen.
Tags und Links objective-c iphone cocoa data-structures