31. UNlisaNon
var moi = [Personne personneAvecNom:@"Korthoudt"
prenom:@"Didier"];
var moi = [[Personne alloc] initWithNom:@"Korthoudt"
prenom:@"Didier"];
var monNom = [moi nom];
var monNomPrenom = [moi nomPrenom];
var prenomNom = [CPString stringWithFormat:@"%@ %@",
[moi prenom], [moi nom]];
if ([nomPrenom isEqualToString:prenomNom])
{
…
}
32. Quelques parNcularités
• nil représente null mais il est possible de lui passer des messages sans générer d’erreur !..
foo = [nil valueForKey:@"bar"]; ( foo = nil )
• YES & NO au lieu de true & false
• KVC (Key-Value Coding) permet d’accéder aux propriétés d’un objet à l’aide de valueForKey :
var monNom = [moi nom] ⬌ var monNom = [moi valueForKey:@"nom"]
Pra0que si la propriété est connue dynamiquement (au run0me) :
var laPropriete = @"nom";
var laValeur = [moi valueForKey:laPropriete];
• KVO (Key-Value Observing) permet d’être no0fié d’un changement de value d’une propriété :
[moi addObserver:self forKeyPath:@"nom"
options:CPKeyValueObservingOptionNew context:nil];
33. Catégories
@import <Foundation/CPString.j>
@implementation CPString (Reversing)
- (CPString)reverse
{
var reversedString = @"",
index = [self length];
while (index--)
reversedString += [self characterAtIndex:index];
return reversedString;
}
@end
var myString = @"hello world",
reversed = [myString reverse];
alert(reversed); //"dlrow olleh"
40. • Courbe d’appren0ssage élevée pour
un développeur hors MacOS / iOS
• Nécessite de préférence un Mac
• Communauté restreinte
• Quid de la pérennité ?
• Environnement isolé : langage
spécifique, API spécifiques
• Look très (trop) MacOS
" • Courbe d’appren0ssage rapide pour
un développeur MacOS / iOS
• Et ?..
• Communauté de professionnels
u0lisant Cappuccino au quo0dien
• Comme n’importe quel autre
framework open source…
(btw, existe depuis 2009)
• Possibilité d’intégrer d’autres
frameworks JS, d’accéder à la DOM
• Système de thèmes…
#