{tag>IB NSString NSSet C NSNull NSURLConnection} ====== Des trucs importants à ne pas oublier ====== ===== Objets égaux ou identiques ===== Deux objets peuvent être * identiques -> contiennent la même adresse. Il s'agit du même objet avec deux noms ou références différentes. Dans le cas d'objets de type NSString par exemple, les deux objets pointeront sur la même adresse. * égaux -> ont le même contenu. Dans le cas d'objets de type NSString par exemple, les deux objets contiendront les mêmes lettres dans le même ordre ===== NSSet et containsObject ===== La méthode containsObject:(id)x de NSSet s'appuie sur isEqual: -> Si un objet est susceptible d'être intégré dans un NSSet, il est important de redéfinir correctement isEqual: pour identifier deux objets égaux. ===== Utiliser les types C ===== Il est possible d'utiliser les types C dans du code Objective C. * [[https://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation/Classes/NSNumber_Class/Reference/Reference.html|NSNumber]] permet de stocker des types C numériques * + (void)numberWithInt:(int) -> stockage d'un entier C * + (void)numberWithFloat:(float) -> stockage d'un décimal C * [[https://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation/Classes/NSValue_Class/Reference/Reference.html|NSValue]] permet de stocker des pointeurs ou certaines structures ===== Représenter un trou dans un collection ===== //nil// ne peut pas être utilisé dans une collection -> utiliser la classe NSNull NSMutableArray *maCollection = [[NSMutableArray alloc] init]; [maCollection addObject:monPremierObjet]; [maCollection addObject:[NSNull null]]; // Un trou dans ma collection [maCollection addObject:monTroisiemeObjet]; ===== Utilisation de NSURLConnection ===== * de préférence de manière asynchrone pour éviter le blocage de l'interface. * NSURLConnection ne sait pas effectuer de callback : saisie de mot de passe ou login impossibles (par exemple). ===== NSSearchPathForDirectoriesInDomains ===== * Signature NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) * Recherche les répertoires qui correspondent au critère indiqué et les retourne dans un tableau ===== Accéder aux vues du Story board ===== Permet de passer des données entre les vues lors de l'utilisation de Story Board (méthodes UIViewController) - (void)performSegueWithIdentifier:(NSString *)identifier sender:(id)sender; - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender; ===== rechercher des motifs dans du texte ===== Utiliser la classe NSDataDetector ===== Compiler une classe avec ou sans ARC ===== Le joyeux mélange ARC / pas ARC en Objective C peut être une bouse infâme. Il est parfois nécessaire de compiler une classe d'un projet avec ARC alors que tout le reste du projet est non ARC. Les directives suivantes sont à ajouter dans Projet -> Build phases -> Compile sources * Compiler avec ARC : -fno-objc-arc * Compiler avec ARC : -fobjc-arc