Alle Dinge, die eine Anwendung mit einem Computer sprechen können, sind eine "API". Das ist ein sehr weiter Begriff. Es kann sich auf etwas so Kleines wie Malloc oder so groß wie Kakao beziehen. All dies sind "APIs" im weitesten Sinne des Wortes.
Auf Mac und iOS kann "Framework" eine bestimmte Bedeutung haben, die ein dynamisch ladbares Paket in einem bestimmten Format darstellt. Es kann auch eine breite Bedeutung von "eine Sammlung von Bibliotheken, die zusammenarbeiten" haben. Es gibt ein Cocoa.framework, aber es gibt auch die breitere Architektur von "Cocoa", die eine Art ist, Probleme anzugreifen, zusammen mit einer Reihe von Werkzeugen, um auf diese Weise Probleme anzugehen.
Eine "Anwendungsumgebung" ist eine Umgebung, in der Anwendungen ausgeführt werden können. So könnte Mac OS X als App-Umgebung betrachtet werden oder Darwin als App-Umgebung oder Cocoa oder Carbon. Es hängt davon ab, womit Sie es vergleichen.
Der Punkt in all dem ist, dass diese nicht branchenweit eindeutig definiert sind. Sie werden verwendet, um viele überlappende Dinge zu bedeuten, und sie werden manchmal auch in den Apple-Dokumenten leicht unterschiedlich verwendet.
Wenn Sie nach einer guten Referenz auf allgemeine Begriffe suchen und wie Apple sie verwendet, möchten Sie Cocoa Core Competencies lesen.
Ich denke, das ist richtig. Ich denke auch, dass es verschiedene Möglichkeiten gibt, diese drei Begriffe zu trennen. Warum fragst du das? Je nach den Umständen kann ein Verständnis der Konzepte wichtiger sein als die genaue Terminologie (die von Anbieter zu Anbieter variiert). – Thilo
@Thilo: Bitte schauen Sie unter Antwort, wenn das korrekt ist bedeutet, dass meine Definition falsch ist – SajjadZare