web-dev-qa-db-fra.com

Cocoa versus Cocoa Touch - Quelle est la différence?

J'apprends le développement iOS dans Objective-C, et j'ai trouvé beaucoup d'exemples de code.

Certains d'entre eux, cependant, disent qu'ils ne sont que pour Mac OS X (pas iOS).

Quelqu'un peut-il m'expliquer quelle est la différence entre Cocoa et Cocoa Touch (au niveau de la bibliothèque), afin que je sache quel code fonctionnera et ce qui ne fonctionnera pas?

46
Alexandru Luchian

Cocoa est communément appelé la combinaison des cadres Foundation et AppKit, tandis que Cocoa Touch est la combinaison des cadres Foundation et UIKit.

Cocoa et Cocoa Touch reposent sur d'autres collections de frameworks pour créer les piles d'API. Les autres couches sont Media, Core Services et Core OS.

La principale différence entre Cocoa et Cocoa touch est que les classes d'interface utilisateur et les API ne sont pas les mêmes que celles de Mac OS X et macOS, donc au lieu de NSTextField, vous avez UITextField. De nombreuses classes partagent les mêmes fonctionnalités et peuvent être portées assez facilement en changeant simplement le nom de la classe, bien que la plupart nécessitent des modifications supplémentaires, mais généralement rien de trop lourd.

Il existe également des différences entre les frameworks Foundation de Cocoa et Cocoa Touch, les classes les plus souvent manquantes, par exemple, Cocoa a NSHost et Cocoa Touch non.

Vous en saurez plus sur les nuances entre les deux et serez bientôt en mesure de savoir instinctivement ce qui fonctionnera sur un iPhone avec peu/pas de modification et ce qui nécessitera un peu de travail entre les ports, mais ce n'est pas si difficile.

77
Jasarien

Framework d'application pour
i) Cocoa est le cadre d'application pour Mac OS X.
ii) Cocoa Touch est le cadre d'application pour iPhone et iPod Touch.

Cadres
i) Cacao: Foundation et AppKit.
ii) Cocoa Touch: Foundation et UIKit

Absence de certaines classes
Cocoa a NSHost et Cocoa Touch non

[~ # ~] api [~ # ~]
i) Cocoa: Toutes les classes utilisées dans Cocoa ont le préfixe NS Ex: NSTextField
ii) Cocoa Touch: les classes utilisées dans Cocoa ont le préfixe d'interface utilisateur Ex: UITextField

Modèles MVC
i) Cacao: Le cacao a plusieurs modèles de conception alternatifs - en plus de MVC
ii) Cocoa Touch: le SDK iPhone a un système MVC renforcé, qui fonctionne mieux que le MVC par défaut de Cocoa

Autres différences
Il existe également des différences dans le cycle de vie des applications, le sandboxing, l'empreinte mémoire

Liens:
http://teks.co.in/site/blog/cocoa-vs-cocoa-touch-beginners-guide/http: //iphonenativeapp.blogspot. dans/2011/02/difference-between-cocoacocoa-touch-and.htmlhttps://iphonecodecenter.wordpress.com/tag/difference-between-cocoa-cocoa-touch/

27
Sangram Shivankar

La section Migration depuis Cocoa Touch de l'aperçu de la technologie iPhone OS fournit un bon aperçu des différences avec des liens vers des documents plus spécifiques pour chaque couche.

La grande différence est la couche d'interface utilisateur. Sur le Mac, vous avez le framework AppKit, sur l'iPhone, vous avez UIKit. Les plus petites différences se trouvent dans le cadre de la Fondation (lié dans le document ci-dessus).

4
Joshua Nozzi

En termes de import dans Swift

import Cocoa dans l'application Mac OSX est identique à

import AppKit
import CoreData
import Foundation

alors que nous ne pouvons pas import CocoaTouch dans iOS

3
onmyway133

Cocoa contre Cocoa Touch-

Cocoa - C'est le cadre d'application utilisé pour Mac OSX,

Cocoa Touch - C'est le cadre d'application utilisé pour iPhone et iPod touch

Cocoa - Foundation + AppKit Framework,
Cocoa Touch - Foundation + UIKIT Framework

1
Sharad Patil

1) Cocoa, qui inclut les frameworks Foundation et AppKit, est utilisé pour développer des applications qui s'exécutent sur OS X.

2) Cocoa Touch, qui inclut les frameworks Foundation et UIKit, est utilisé pour développer des applications qui s'exécutent sur iOS.

0
Ayaz Akbar