Questions de développement iOS (9)
101. Erreur de compilation : ld : bibliothèque introuvable pour -lPods
Cette erreur se produit souvent lorsque cocoaPods est utilisé dans le projet (généralement lors de la sortie).
En effet, les cocoaPods créeront un nouvel espace de travail après l'installation du pod. Vous devez fermer le projet et le rouvrir. Le problème est résolu.
102. Pourquoi l'heure iOS est-elle toujours 8 heures plus lente que l'heure réelle
Par exemple, une heure de Pékin "2014-4-4 22:00" (chaîne) doit être convertie en NSDate. La conversion des chaînes en NSDate est généralement effectuée via NSDateFormatter. Sur iOS, NSDate est stocké à l'heure GMT, donc NSDateFormatter traitera automatiquement l'heure locale du fuseau horaire actuel de la chaîne, c'est-à-dire convertira l'heure de Pékin convertie (chaîne "2014-4-4 22:00") en GMT heure (" 2014-4-4 14:00"). Si vous transmettez directement ce NSDate (longlong, le nombre de secondes ou millisecondes depuis 1970) au serveur, le serveur utilisera cette heure comme heure de Pékin (en fait c'est l'heure GMT), ce qui entraîne un décalage horaire de 8 heures.
La bonne approche consiste à ajouter le décalage horaire en fonction de cette NSDate. Le calcul du décalage horaire nécessite de connaître le fuseau horaire actuel. [NSTimeZonesystemTimeZone] peut obtenir le fuseau horaire actuel (East 8 Zone), puis utiliser la méthode secondsFromGMTForDate: pour obtenir le décalage horaire (en secondes) de ce fuseau horaire (East 8 Zone). Le code est le suivant :
NSDateFormatter* df=[NSDateFormatter new]; // [dfsetLocale:[NSLocale currentLocale]]; df.dateFormat=@"yyyy-MM-dd HH:mm"; NSDate* date=[dfdateFromString:@"2014-4-4 22:00"]; NSTimeZone *zone =[NSTimeZone systemTimeZone]; NSInteger interval = [zonesecondsFromGMTForDate: date]; NSDate *localeDate =[date dateByAddingTimeInterval:interval]; NSLog(@"%@",localeDate);
103. Désactivez l'animation contextuelle du clavier dans UITableViewController
TableViewController a un code intégré pour l'animation contextuelle du clavier lors du contrôle d'entrée dans le. La cellule fait apparaître le clavier logiciel, la tableView défilera automatiquement vers le haut. Mais cette fonctionnalité pose parfois de gros problèmes, car parfois le contrôle de saisie défilera vers un endroit invisible. Comme nous ne pouvons pas modifier le code du framework, dans ce cas, nous devons renoncer à utiliser TableViewController (sous-classement) et utiliser à la place le UIViewController général UITableView. Mais parfois, nous devons utiliser TableViewContrller - par exemple, si nous voulons utiliser ses cellules statiques, nous pouvons le résoudre via les méthodes suivantes. Remplacez la méthode viewWillAppear dans la sous-classe UITableViewController pour désactiver le comportement viewWillAppear de la classe parent. Autrement dit, n'appelez pas [superviewWillAppear:animated] :
-(void)viewWillAppear:(BOOL)animated{ // Override super method with don'tcall [super viewWillApper] }
104. Quand devez-vous utiliser NSCache
NSCache libérera automatiquement l'un des objets du cache en fonction de la pression de la mémoire (par exemple ? exemple, la vue est détruite ou il y a trop d'objets en cache). Par conséquent, les objets mis en cache par NSCache doivent être reconstructibles, comme ces objets - des données qui peuvent être téléchargées depuis le réseau en cas de besoin. Sinon, vous ne devriez pas utiliser NSCache - l'objet sera détruit à un moment donné.
Par conséquent, lors de l'utilisation de NSCache, vous devez faire attention. Si l'objet récupéré n'existe pas dans le cache, nous devons en reconstruire un :
-(CachedObject)getCachedObject:(id)key{ id* obj=[NSCacheObjectobjectForKey:key]; if (cb==nil) { obj=[[CachedObjectalloc]init]; // Recreate cached object …… } return obj; }
105. Problème d'archive Pods sur Xcode5<. 🎜> Description du problème : L'erreur suivante se produit lorsque
Archive (cela peut être normal lors du débogage) :
ld : bibliothèque introuvable pour -lPods
Le problème est que Xcode5.x va désormais détecter l'architecture de projets dépendants et ses paramètres Il doit être cohérent avec le projet principal, sinon le projet dépendant sera rejeté (c'est-à-dire qu'il ne sera pas compilé).
Solution :
Sous toutes les cibles du projet Pods, définir leur architecture pour qu'elle soit cohérente avec le projet principal.
106. Comment vérifier l'architecture prise en charge par une bibliothèque statique
Utilisez la commande "lipo -info static library file", par exemple :
lipo -info Unrar4iOS
Ensuite, le terminal affichera ce qui suit :
Les architectures dans le fichier fat : Unrar4iOS sont : armv7 armv6 i386
107 L'introduction de certaines bibliothèques statiques dans le projet provoquera l'erreur "Symboles non définis pour l'architecture armv7s/arm64" dans l'archive
As. mentionné à la question 105. En plus d'utiliser la solution de la question 105, il existe une autre solution de contournement.
Vérifiez d'abord l'architecture de la bibliothèque statique (voir question 106). Modifiez ensuite Scheme pour prendre en charge l'architecture de la bibliothèque statique. Modifiez ensuite Build Active ArchitectureOnly dans Buid Settings (compilez uniquement pour l’architecture sélectionnée) et modifiez la valeur sur Yes. Puis compilez-le.
108. Sous Autolayout, la hauteur de UITableView est incorrecte
Sous Autolayout, s'il y a une barre de navigation, UITableView sur la vue est limitée par des contraintes et la hauteur d'exécution est réinitialisée par des contraintes à la hauteur sans navigation. bar. A ce stade, la méthode viewDidLayoutSubviews doit être implémentée pour éliminer l'influence des contraintes :
- (void)viewDidLayoutSubviews { _table.frame=CGRectMake(0,0,self.view.frame.size.width,self.view.frame.size.height); }
Supposons que la navigation soit : Vue A --> Vue B
Si vous souhaitez modifier le titre du bouton de retour de la vue B pour revenir à la vue A, utilisez simplement le code suivant dans la vue A :
self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc]initWithTitle:@"返回" style:UIBarButtonItemStylePlain target:self action:nil]; B视图不用做任何操作。
C'est NSNull. Vous pouvez imprimer cet objet (à l'aide de la commande po ou de NSLog), et le résultat imprimé sera " 以上就是iOS 开发百问(9)的内容,更多相关内容请关注PHP中文网(www.php.cn)!
Étant donné que les objets de collection O-C ne permettent pas d'insérer des valeurs nulles (nil) et que NSNull n'est pas nul, l'objet NSNull est utilisé pour indiquer que la collection est vide (indiquant la fin de la liste). De plus, contrairement à nil, l'envoi d'un message à un NSNull provoquera une exception.
NSNull a la seule méthode : [NSNull null] Vous pouvez l'utiliser pour tester si un objet est NSNull : BOOL isNSNull(id any){
return [any isEqual:[NSNullnull]];
}

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

La WWDC annuelle est terminée et iOS18 est sans aucun doute au centre de toutes les attentions. Actuellement, de nombreux utilisateurs d’iPhone se précipitent pour passer à iOS18, mais divers bugs du système mettent les gens mal à l’aise. Certains blogueurs ont déclaré qu'il fallait être prudent lors de la mise à niveau vers iOS18 car "il y a tellement de bugs". Le blogueur a déclaré que si votre iPhone est votre machine principale, il est recommandé de ne pas passer à iOS18 car la première version comporte de nombreux bugs. Il a également résumé plusieurs bugs du système actuellement rencontrés : 1. Le style d'icône de changement est bloqué, ce qui empêche l'affichage de l'icône. 2. L'animation de la largeur de la lampe de poche est souvent perdue. 3. L'application Douyin ne peut pas télécharger de vidéos. 10 secondes. 5. Parfois, le téléphone ne peut pas être connecté et l'écran est noir. 6. Forte fièvre.

Merci aux internautes Ji Yinkesi, xxx_x, aux tomates frites, à Terrence et aux pilons de poulet épicés pour avoir soumis des indices ! Selon les informations du 27 juillet, Apple a réédité aujourd'hui la mise à jour iOS/iPadOS 18 Beta 4 pour les développeurs. Le numéro de version interne est passé de 22A5316j à 22A5316k. La différence entre les deux mises à jour de la version Beta 4 n'est actuellement pas claire. Les développeurs enregistrés peuvent ouvrir l'application « Paramètres », accéder à la section « Mise à jour du logiciel », cliquer sur l'option « Mise à jour bêta », puis basculer les paramètres bêta du développeur iOS18/iPadOS18 pour sélectionner la version bêta. Le téléchargement et l'installation de la version bêta nécessitent un identifiant Apple associé à un compte développeur. Signalé le 24 juillet, iO

Selon l'actualité du 31 juillet, Apple a publié hier (30 juillet) un communiqué de presse annonçant le lancement d'un nouveau package Swift open source (swift-homomorphic-encryption) permettant le cryptage homomorphe dans le langage de programmation Swift. Remarque : Le chiffrement homomorphe (HE) fait référence à un algorithme de chiffrement qui satisfait aux propriétés d'opération homomorphe du texte chiffré. Autrement dit, une fois les données chiffrées de manière homomorphe, des calculs spécifiques sont effectués sur le texte chiffré et les résultats de calcul du texte chiffré obtenus sont traités en même temps. Le texte en clair après le décryptage de l'état équivaut à effectuer directement le même calcul sur les données en texte en clair, obtenant ainsi « l'invisibilité » des données. La technologie de cryptage homomorphe peut calculer les données cryptées sans divulguer les données non cryptées sous-jacentes au processus opérationnel.

Mise à jour : Saunders Tech a mis en ligne un didacticiel sur sa chaîne YouTube (vidéo intégrée ci-dessous) expliquant comment installer Fortnite et Epic Games Store sur un iPad en dehors de l'UE. Cependant, non seulement le processus nécessite des versions bêta spécifiques d'iO

Selon l'actualité du 1er juin, le média technologique AppleInsider a publié aujourd'hui un article de blog indiquant qu'Apple lancerait une nouvelle fonction de navigation « Scènes » pour l'extension d'application « Freeform » dans le système iOS18 et ajouterait de nouvelles options d'alignement des objets. Introduction à l'application « Wubianji » Tout d'abord, présentons brièvement l'application « Wubianji ». L'application sera lancée en 2022 et a actuellement lancé les versions iOS, iPadOS, macOS15 et visionOS. L’introduction officielle d’Apple est la suivante : « Boundless Notes » est un excellent outil pour transformer l’inspiration en réalité. Esquissez des projets, concevez des tableaux d'ambiance ou lancez un brainstorming sur un canevas flexible prenant en charge presque tous les types de fichiers. Avec iCloud, tous vos tableaux

[Cliquez ici pour accéder directement au didacticiel de mise à niveau] Selon les informations du 8 mai, Apple a proposé aujourd'hui la mise à jour iOS17.5RC (numéro de version interne : 21F79) aux utilisateurs d'iPhone. Cette mise à jour est effectuée 70 jours après la dernière version. Comment mettre à niveau la version de développement iOS/iPadOS/watchOS/macOS et la version bêta publique ? Pour mettre à niveau la version préliminaire du développeur iOS/iPadOS17 et la version bêta publique, vous pouvez vous référer à l'expérience partagée par vos amis : Experience Post 1||Experience Post 2||Experience Post 3||Experience Post 4. À partir de iOS/iPadOS 16.4 Developer Preview Beta 1, vous devez vous inscrire au programme pour développeurs Apple. Après l'inscription, ouvrez le système [Paramètres] [Mise à jour du logiciel] pour voir l'option de mise à niveau. Veuillez noter que votre iPhone ou IP

Merci aux internautes Spicy Chicken Leg Burger, Soft Media New Friends 2092483, Handwriting Past, DingHao, Xiaoxing_14, Wowotou Eat Big Kou, Feiying Q, Soft Media New Friends 2168428, Slades, Aaron212, Happy Little Hedgehog, Little Earl, Clues for the small chat de lait qui mange du poisson ! [Cliquez ici pour accéder directement au didacticiel de mise à niveau] Selon les informations du 24 juillet, Apple a proposé aujourd'hui la mise à jour Beta4 de la version préliminaire du développeur iOS/iPadOS18 (numéro de version interne : 22A5316j) aux utilisateurs d'iPhone et d'iPad. Cette mise à jour est 15 jours après la mise à jour. dernière version. Carplay Wallpaper Apple a ajouté des fonds d'écran à CarPlay, couvrant les modes clair et sombre. Son style de fond d'écran est similaire à celui de l'iPhone.

Partage pratique... Alors qu'Apple continue de lancer de nouvelles versions d'iOS, de nombreux utilisateurs d'iPhone sont confrontés au choix de mettre à niveau ou non le système. La sortie du dernier iOS17.5Beta3 a attiré une large attention, en particulier parmi les utilisateurs d'iPhone12. La question de savoir s'ils doivent abandonner l'iOS16 existant et essayer la nouvelle version bêta est devenue une question qui mérite d'être discutée. Basé sur une expérience réelle, cet article analyse les avantages et les inconvénients de la mise à niveau de l'iPhone 12 vers iOS 17.5 Beta 3 pour fournir une référence aux fans d'Apple. Tout d’abord, nous devons préciser que les versions bêta sont généralement utilisées par des développeurs ou des utilisateurs précoces prêts à prendre un certain risque. Cela signifie que par rapport à la version officielle, la version Beta peut contenir
