Fragen zur iOS-Entwicklung (9)
101. Kompilierungsfehler: ld: Bibliothek für -lPods nicht gefunden
Dieser Fehler tritt häufig auf, wenn CocoaPods im Projekt verwendet wird (normalerweise während der Veröffentlichung).
Das liegt daran, dass CocoaPods nach der Pod-Installation einen neuen Arbeitsbereich erstellt. Sie müssen das Projekt schließen und erneut öffnen. Das Problem ist gelöst.
102. Warum ist die iOS-Zeit immer 8 Stunden langsamer als die Echtzeit?
Zum Beispiel muss eine Pekinger Zeit „2014-4-4 22:00“ (Zeichenfolge) in NSDate umgewandelt werden. Die Konvertierung von Zeichenfolgen in NSDate erfolgt im Allgemeinen über NSDateFormatter. Unter iOS wird NSDate in GMT-Zeit gespeichert, sodass NSDateFormatter automatisch die Ortszeit der aktuellen Zeitzone der Zeichenfolge verarbeitet, d. h. die konvertierte Peking-Zeit (Zeichenfolge „2014-4-4 22:00“) in GMT umwandelt Uhrzeit („2014-4-4 14:00“). Wenn Sie dieses NSDate (longlong, die Anzahl der Sekunden oder Millisekunden seit 1970) direkt an den Server übergeben, verwendet der Server diese Zeit als Peking-Zeit (tatsächlich ist es GMT-Zeit), was zu einem Zeitunterschied von 8 Stunden führt.
Der richtige Ansatz besteht darin, den Zeitunterschied basierend auf diesem NSDate hinzuzufügen. Für die Berechnung des Zeitunterschieds ist die Kenntnis der aktuellen Zeitzone erforderlich. [NSTimeZonesystemTimeZone] kann die aktuelle Zeitzone (East 8 Zone) abrufen und dann die Methode secondsFromGMTForDate: verwenden, um den Zeitunterschied (in Sekunden) dieser Zeitzone (East 8 Zone) abzurufen. Der Code lautet wie folgt:
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. Deaktivieren Sie die Tastatur-Popup-Animation in UITableViewController.
TableViewController verfügt über einen integrierten Code für die Tastatur-Popup-Animation Zelle öffnet die Softtastatur, die Tabellenansicht scrollt automatisch nach oben. Diese Funktion verursacht jedoch manchmal große Probleme, da das Eingabesteuerelement manchmal an eine unsichtbare Stelle gescrollt wird. Da wir den Framework-Code nicht ändern können, müssen wir in diesem Fall auf die Verwendung von TableViewController (Unterklassen) verzichten und stattdessen den allgemeinen UIViewController+UITableView verwenden. Aber manchmal müssen wir TableViewContrller verwenden – wenn wir beispielsweise seine statischen Zellen verwenden möchten, können wir das Problem mit den folgenden Methoden lösen. Überschreiben Sie die viewWillAppear-Methode in der UITableViewController-Unterklasse, um das viewWillAppear-Verhalten der übergeordneten Klasse zu deaktivieren. Rufen Sie also nicht [superviewWillAppear:animated] auf:
-(void)viewWillAppear:(BOOL)animated{ // Override super method with don'tcall [super viewWillApper] }
104. Wann sollten Sie NSCache verwenden?
NSCache gibt automatisch eines der Cache-Objekte entsprechend der Speicherauslastung frei (z Beispiel: Die Ansicht ist zerstört oder es sind zu viele zwischengespeicherte Objekte vorhanden. Daher müssen die von NSCache zwischengespeicherten Objekte wie diese Objekte wiederhergestellt werden können – Daten, die bei Bedarf aus dem Netzwerk heruntergeladen werden können. Andernfalls sollten Sie NSCache nicht verwenden – das Objekt wird irgendwann zerstört.
Daher müssen Sie bei der Verwendung von NSCache darauf achten, dass das abgerufene Objekt nicht im Cache vorhanden ist:
-(CachedObject)getCachedObject:(id)key{ id* obj=[NSCacheObjectobjectForKey:key]; if (cb==nil) { obj=[[CachedObjectalloc]init]; // Recreate cached object …… } return obj; }
105. Pods-Archivproblem auf Xcode5
Problembeschreibung: Der folgende Fehler tritt beim
Archivieren auf (dies kann beim Debuggen normal sein):
ld: Bibliothek für -lPods nicht gefunden
Das Problem liegt daran, dass Xcode5.x jetzt die Architektur von Abhängigen erkennt Projekte und ihre Einstellungen müssen mit dem Hauptprojekt übereinstimmen, andernfalls wird das abhängige Projekt abgelehnt (d. h. es wird nicht kompiliert).
Lösung:
Stellen Sie unter allen Zielen des Pods-Projekts deren Architektur so ein, dass sie mit dem Hauptprojekt übereinstimmt.
106. So überprüfen Sie die von einer statischen Bibliothek unterstützte Architektur
Verwenden Sie den Befehl „lipo -info statische Bibliotheksdatei“, zum Beispiel:
lipo -info Unrar4iOS
Dann wird das Terminal wie folgt angezeigt :
Architekturen in der FAT-Datei: Unrar4iOS sind: armv7 armv6 i386
107. Die Einführung bestimmter statischer Bibliotheken in das Projekt führt zu dem Fehler „Undefinierte Symbole für Architektur armv7s/arm64“ im Archiv
As in Frage 105 erwähnt. Neben der Lösung in Frage 105 gibt es noch einen weiteren Workaround.
Überprüfen Sie zunächst die Architektur der statischen Bibliothek (siehe Frage 106). Ändern Sie dann das Schema, um die Architektur der statischen Bibliothek zu unterstützen. Ändern Sie dann „Build Active ArchitectureOnly“ in den Buid-Einstellungen (kompilieren Sie nur für die ausgewählte Architektur) und ändern Sie den Wert auf „Ja“. Dann kompilieren Sie es.
108. Unter Autolayout ist die Höhe von UITableView falsch.
Wenn unter Autolayout eine Navigationsleiste vorhanden ist, wird die UITableView in der Ansicht durch Einschränkungen eingeschränkt und die Laufzeithöhe wird durch Einschränkungen auf die Höhe ohne Navigation zurückgesetzt Bar. Zu diesem Zeitpunkt sollte die Methode viewDidLayoutSubviews implementiert werden, um den Einfluss von Einschränkungen zu beseitigen:
- (void)viewDidLayoutSubviews { _table.frame=CGRectMake(0,0,self.view.frame.size.width,self.view.frame.size.height); }
109 Wie ändere ich den Titel der Standard-Zurück-Schaltfläche?
Angenommen, die Navigation lautet: A-Ansicht --> B-Ansicht
Wenn Sie den Titel der Zurück-Schaltfläche von Ansicht B ändern möchten, um zu Ansicht A zurückzukehren, verwenden Sie einfach den folgenden Code in Ansicht A:
self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc]initWithTitle:@"返回" style:UIBarButtonItemStylePlain target:self action:nil]; B视图不用做任何操作。
110. Es gibt ein leeres Objekt, aber es ist weder Null noch Null?
Es ist NSNull. Sie können dieses Objekt drucken (mit dem Befehl po oder NSLog), und das gedruckte Ergebnis ist „
Da O-C-Sammlungsobjekte das Einfügen von Nullwerten (Null) nicht zulassen und NSNull nicht Null ist, wird das NSNull-Objekt verwendet, um anzuzeigen, dass die Sammlung leer ist (was das Ende der Liste anzeigt). Außerdem führt das Senden einer Nachricht an einen NSNull im Gegensatz zu Null zu einer Ausnahme.
NSNull hat die einzige Methode: [NSNull null] Sie können damit testen, ob ein Objekt NSNull ist:
BOOL isNSNull(id any){ return [any isEqual:[NSNullnull]]; }
以上就是iOS 开发百问(9)的内容,更多相关内容请关注PHP中文网(www.php.cn)!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Die jährliche WWDC ist zu Ende und iOS18 steht zweifellos im Mittelpunkt aller Aufmerksamkeit. Derzeit beeilen sich viele iPhone-Nutzer, auf iOS18 zu aktualisieren, aber verschiedene Systemfehler bereiten den Menschen Unbehagen. Einige Blogger sagten, dass man beim Upgrade auf iOS18 vorsichtig sein sollte, weil „es so viele Fehler gibt“. Der Blogger sagte, wenn Ihr iPhone Ihr Hauptgerät ist, wird empfohlen, kein Upgrade auf iOS18 durchzuführen, da die erste Version viele Fehler aufweist. Er fasste auch mehrere derzeit aufgetretene Systemfehler zusammen: 1. Beim Umschalten des Symbolstils bleibt das Symbol hängen. 2. Die Animation in der Taschenlampenbreite geht häufig verloren. 3. Die Douyin-App kann keine Videos hochladen 10 Sekunden. 5. Gelegentlich kann das Telefon nicht eingeschaltet werden und der Bildschirm ist schwarz. 6. Starkes Fieber.

Vielen Dank an die Internetnutzer Ji Yinkesi, xxx_x, gebratene Tomaten, Terrence und würzige Hähnchenkeulen für die Übermittlung von Hinweisen! Laut Nachrichten vom 27. Juli hat Apple heute das iOS/iPadOS 18 Beta 4-Update für Entwickler erneut veröffentlicht. Die interne Versionsnummer wurde von 22A5316j auf 22A5316k aktualisiert. Der Unterschied zwischen den beiden Beta 4-Versionsupdates ist derzeit unklar. Registrierte Entwickler können die App „Einstellungen“ öffnen, den Abschnitt „Software-Update“ aufrufen, auf die Option „Beta-Update“ klicken und dann die Entwickler-Beta-Einstellungen für iOS18/iPadOS18 umschalten, um die Beta-Version auszuwählen. Zum Herunterladen und Installieren der Betaversion ist eine Apple-ID erforderlich, die mit einem Entwicklerkonto verknüpft ist. Gemeldet am 24. Juli iO

Laut Nachrichten vom 31. Juli hat Apple gestern (30. Juli) eine Pressemitteilung herausgegeben, in der die Einführung eines neuen Open-Source-Swift-Pakets (swift-homomorphic-encryption) zur Ermöglichung homomorpher Verschlüsselung in der Programmiersprache Swift angekündigt wird. Hinweis: Homomorphe Verschlüsselung (HE) bezieht sich auf einen Verschlüsselungsalgorithmus, der die homomorphen Operationseigenschaften von Chiffretext erfüllt. Das heißt, nach der homomorphen Verschlüsselung der Daten werden spezifische Berechnungen für den Chiffretext durchgeführt und die erhaltenen Chiffretext-Berechnungsergebnisse werden gleichzeitig verarbeitet Der Klartext nach der Zustandsentschlüsselung entspricht der direkten Durchführung derselben Berechnung für die Klartextdaten, wodurch die „Unsichtbarkeit“ der Daten erreicht wird. Die homomorphe Verschlüsselungstechnologie kann verschlüsselte Daten berechnen, ohne dass die zugrunde liegenden unverschlüsselten Daten an den Betriebsprozess weitergegeben werden.

Update: Saunders Tech hat auf seinem YouTube-Kanal ein Tutorial hochgeladen (Video unten eingebettet), in dem erklärt wird, wie man Fortnite und den Epic Games Store auf einem iPad außerhalb der EU installiert. Für den Prozess sind jedoch nicht nur bestimmte Betaversionen von iO erforderlich

Laut Nachrichten vom 1. Juni veröffentlichte das Technologiemedium AppleInsider heute einen Blogbeitrag, in dem es heißt, dass Apple eine neue Navigationsfunktion von „Szenen“ für die Anwendungserweiterung „Freeform“ im iOS18-System einführen und neue Optionen für die Objektausrichtung hinzufügen wird. Einführung in die „Wubianji“-Anwendung Lassen Sie uns zunächst kurz die „Wubianji“-Anwendung vorstellen. Die Anwendung wird im Jahr 2022 gestartet und hat derzeit iOS-, iPadOS-, macOS15- und visionOS-Versionen auf den Markt gebracht. Die offizielle Einführung von Apple lautet wie folgt: „Boundless Notes“ ist ein hervorragendes Werkzeug, um Inspiration in die Realität umzusetzen. Skizzieren Sie Projekte, entwerfen Sie Moodboards oder beginnen Sie mit dem Brainstorming auf einer flexiblen Leinwand, die nahezu jeden Dateityp unterstützt. Mit iCloud alle Ihre Boards

[Klicken Sie hier, um direkt zum Upgrade-Tutorial zu gelangen] Laut Nachrichten vom 8. Mai hat Apple das iOS17.5RC-Update (interne Versionsnummer: 21F79) heute 70 Tage nach der letzten Veröffentlichung an iPhone-Benutzer weitergegeben. Wie aktualisiere ich die iOS/iPadOS/watchOS/macOS-Entwicklungsversion und die öffentliche Betaversion? Um die Vorschauversion für iOS/iPadOS17-Entwickler und die öffentliche Betaversion zu aktualisieren, können Sie auf die von Freunden geteilten Erfahrungen verweisen: Erfahrungsbeitrag 1||Erfahrungsbeitrag 2||Erfahrungsbeitrag 3||Erfahrungsbeitrag 4. Ab iOS/iPadOS 16.4 Developer Preview Beta 1 müssen Sie sich für das Apple Developer Program registrieren. Öffnen Sie nach der Registrierung das System [Einstellungen] [Software-Update], um die Upgrade-Option anzuzeigen. Bitte beachten Sie, dass Ihr iPhone oder IP

Vielen Dank an die Internetnutzer 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 little Milchkatze, die Fisch frisst! [Klicken Sie hier, um direkt zum Upgrade-Tutorial zu gelangen] Laut Nachrichten vom 24. Juli hat Apple heute das iOS/iPadOS18-Entwicklervorschau-Update Beta4 (interne Versionsnummer: 22A5316j) für iPhone- und iPad-Benutzer bereitgestellt. Dieses Update erfolgt 15 Tage nach dem letzte Veröffentlichung. Carplay-Hintergrundbild Apple hat Hintergrundbilder zu CarPlay hinzugefügt, die den hellen und dunklen Modus abdecken. Der Hintergrundstil ähnelt dem des iPhone

Praktisches Teilen... Während Apple weiterhin neue iOS-Versionen auf den Markt bringt, stehen viele iPhone-Benutzer vor der Entscheidung, ob sie das System aktualisieren möchten. Die Veröffentlichung des neuesten iOS17.5Beta3 hat insbesondere bei iPhone12-Benutzern große Aufmerksamkeit erregt. Ob sie das bestehende iOS16 aufgeben und die neue Beta-Version ausprobieren sollten, ist zu einer diskussionswürdigen Frage geworden. Basierend auf tatsächlichen Erfahrungen analysiert dieser Artikel die Vor- und Nachteile eines Upgrades des iPhone 12 auf iOS 17.5 Beta 3, um Apple-Fans als Referenz zu dienen. Zunächst muss klargestellt werden, dass Beta-Versionen in der Regel von Entwicklern oder Early Adopters genutzt werden, die bereit sind, ein gewisses Risiko einzugehen. Dies bedeutet, dass die Beta-Version im Vergleich zur offiziellen Version möglicherweise Folgendes enthält
