OVH Cloud OVH Cloud

Objective-C

33 réponses
Avatar
lists
Bonjour,

Je commence à lire quelques doc sur l'Obj-C afin de commencer
(peut-être) à découvrir Cocoa. (Jusqu'à présent, je n'ai toujours
programmé qu'avec InterfaceLib puis Carbon)

Je n'ai pas trouvé de forum fr dédié à l'Obj-C. Je poste donc ici.

Question :
Peut-on définir pour un objet des opérateurs +, *, etc. comme en C++ ?
Si oui, comment ?
SI non, la solution usuelle est-elle Obj-C++ ?

--
R: Parce que ça renverse bêtement l'ordre naturel de lecture!
Q: Mais pourquoi citer en fin d'article est-il si effroyable?
R: Citer en fin d'article
Q: Quelle est la chose la plus désagréable sur les groupes de news?

3 réponses

1 2 3 4
Avatar
Gilles

c'était de définir des classes qui relèvent plus
de l'architecture du programme que de l'interface utilisateur proprement
dite à partir d'InterfaceBuilder.


Frédéric plus loin a résumer ma pensée...

Je trouve que c'est une possibilité de générer une classe depuis IB,
mais un non sens logique en tout cas pour moi...

beaucoup l'utilise cependant...

Avatar
thomas-ml
Julien Salort wrote:

Ce que je trouvais surprenant (je n'ai pas dit que c'était « mal »,
juste « surprenant ») c'était de définir des classes qui relèvent plus
de l'architecture du programme que de l'interface utilisateur proprement
dite à partir d'InterfaceBuilder.


En l'occurrence l'exemple du CurrencyConverter est assez mal choisi car
leur exemple répond mal au MVC... Pour faire "propre" il aurait fallu
créer une classe "Converter" dont le seul job aurait été de convertir
une devise en une autre, qui prendrait deux flottants et en renverrait
un autre, sans aucun rapport avec l'interface graphique.

Par exemple, je considere que l'exemple Currency Converter With Bindings
est plus propre.

Si tu t'en tiens au MVC c'est très logique de créer une classe dans IB :
tu crées les classes du modèle dans XCode, mais les classes du
contrôleur, de "liaison" entre le modèle et la vue, c'est tout aussi
logique de les créer dans XCode que dans IB puisque elles relèvent
autant "de l'architecture du programme" que "de l'interface utilisateur
proprement dite"... D'ailleurs, tu peux créer la classe dans XCode et
après l'importer dans IB !

--
Thomas Deniau

Avatar
Gérard Iglesias
Julien Salort wrote:
En revanche, dfinir une classe (qui semble pouvoir tre tout fait
quelconque) et instantier des objets (non graphiques) directement avec
IB, c'est assez nouveau pour moi.


Désolé j'arrive un peu tard dans la discussion, mais un point de
précision:

En général ce que tu 'instancie' de la sorte ce n'est pas un objet de la
classe elle même, mais un proxy qui représente un objet de cette
classe...

Car, quand tu défini une classe de manière formelle dans ton .nib, IB
n'a pas le code pour créer le 'vrai' objet.

Pour un objet d'une palette, c'est une autre histoire bien entendu, IB
n'instancie pas un proxy, puisque il a le code.

Le but est de pouvoir définir les connexions entre cet objet et les
autres éléments du nib. Grosse économie de code, c'est certain.

Lorsque le .nib est activé, lors du chargement, le proxy est remplacé
par une instance de la classe et les connexions sont réalisées sur la
'vrai' instance.


Par ailleurs il faut noter que dans le .nib il y a un proxy
d'importance, c'est le File's Owner, qui lui reprsente l'owner du .nib
dans l'appel :

[NSBundle loadNibNamed:aName owner:aFilesOwner];

Et grâce auquel ton programme aura access simplement aux objets présents
dans le .nib.



Salutations

Gerard

1 2 3 4