22. Résolvez le message d'erreur 0x52cc690 de l'instance désalloué
Cette erreur se produit lorsque vous essayez d'attribuer une valeur à un objet, tel que :
tfContent.text=bodyText;
À ce stade, vous pouvez ouvrez l'option NSZombieEnable, la console aura le résultat suivant :
***-[CFString _isNaturallyRTL] : message envoyé à l'instance désallouée 0x52cc690
Explication Le message _isNaturallyRTL a été envoyé à un objet libéré. À en juger par la déclaration ci-dessus, il peut s'agir de ces deux objets : tfContent et bodyText.
Vous pouvez imprimer l'adresse mémoire de tfContent ou bodyText pour voir quel objet a été libéré :
NSLog(@"tfContent:0x%x",(int) tfContent); NSLog(@"bodytext:0x%x",(int) bodyText);
Le résultat montre que bodyText a été libéré plus tôt :
tfContent: 0x52cf160 bodytext: 0x52cc690
Conservez bodyText à l'endroit approprié et le problème est résolu.
23. putpkt:write failed : Erreur de canal cassé
Redémarrez l'appareil.
24. .hfile not found
En fait, le fichier .h n'est pas inclus dans la cible. Sélectionnez le fichier .m correspondant, cliquez sur le bouton « Afficher les utilitaires » (à l'extrémité droite de la barre d'outils), recherchez l'adhésion à la cible dans les utilitaires, décochez la cible, puis revérifiez-la. Cela équivaut à ajouter le fichier .m à la phase de construction de la cible.
25. Xcode 4 : Comment convertir xib pour iPhone en pour iPad
Dans Xcode 3.x, convertissez xib de la version iPhone en version iPad via le menu Créer une version iPad.
Mais dans Xcode 4.x, ce menu est introuvable. Après quelques explorations, l'auteur a découvert que le xib peut être converti en version iPad en utilisant la méthode suivante.
1. Modifier le fichier source xib
Le fichier xib est en fait un fichier xml. Dans Project Navigator, cliquez avec le bouton droit sur le fichier xib et sélectionnez « Ouvrir en tant que -> Code source ». Vous pouvez afficher le fichier xib en mode code source et recherchez la ligne « com.apple.InterfaceBuilder3.CocoaTouch.XIB ». à " com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB", c'est-à-dire que ".iPad" est ajouté.
Appuyez sur ⌘ F pour ouvrir la barre de recherche et cliquez sur le menu Remplacer pour changer le mode en mode de remplacement. Remplacez tous les "IBCocoaTouchFramework" dans le fichier xib par "IBIPadFramework".
Appuyez sur ⌘ S pour enregistrer les modifications.
2. Modifiez la taille d'affichage de xib
Cliquez avec le bouton droit sur le fichier xib, sélectionnez "Ouvrir en tant que -> Interface Builder – iOS" et ouvrez-le en mode IB.
Sélectionnez la vue racine (UIView) dans le fichier xib, recherchez l'option Taille dans le panneau des propriétés et modifiez-la en Plein écran iPad.
Maintenant, vous pouvez avoir une version iPad de xib.
26. Les dimensions de l'icône (0 x 0) ne répondent pas aux exigences de taille
Ouvrez les paramètres de construction du projet, recherchez Compresser les fichiers PNG et définissez la valeur sur Non.
Ou :
Sélectionnez le fichier png, recherchez le type de fichier dans le panneau FileInspector et remplacez-le de "PNG" par "Icône".
Attention : aucun prototype précédent pour la fonction
Open Target. ->BuildSettings, recherchez un prototype et remplacez Missing Function ProtoTypes par NO.
28. L'erreur "Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/clangfailed with exit code 1" se produit lorsque CorePlot est compilé
Veuillez modifier le schéma du périphérique iOS vers le simulateur iPhone 5.0. . Ou changez le compilateur pour C/C en LLVM GCC4.2. Dans le même temps, Core Plot 1.0 ne prend plus en charge les anciens processeurs armv6.
29. L'utilisation de CABasicAnimation pour modifier la valeur alpha de UIView n'est pas valide
La valeur alpha de UIView est en fait "opacité" dans CALayer. Veuillez utiliser opcity comme keyPath.
30. CorePlost : Après avoir personnalisé l'étiquette de l'axe, la coche ne s'affiche pas.
Définissez les majorTickLocations de Axis à l'emplacement où vous souhaitez afficher la coche.
NSMutableArray*customTickLocations=[[[NSMutableArray alloc]init]autorelease]; for(int i=0;i<10;i++){ [customTickLocationsaddObject:[NSNumber numberWithInt:i]]; } xAxis.majorTickLocations=[NSSetsetWithArray:customTickLocations];
31. UITableViewCell personnalisé, indentationLevel ne peut pas prendre effet
La méthode layoutSubviews doit être implémentée dans le UITableViewCell personnalisé.
- (void)layoutSubviews { [super layoutSubviews]; float indentPoints = self.indentationLevel *self.indentationWidth; for(UIView *view in self.subviews){ view.frame = CGRectMake( view.frame.origin.x+indentPoints, view.frame.origin.y, view.frame.size.width, view.frame.size.height ); } }
Ce qui précède est le contenu des questions de développement iOS (3). Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !