22. Lösen Sie den Fehler „Meldung zur freigegebenen Instanz 0x52cc690“
Dieser Fehler tritt auf, wenn versucht wird, einem Objekt einen Wert zuzuweisen, z. B.:
tfContent.text=bodyText;
Zu diesem Zeitpunkt können Sie Wenn Sie die Option „NSZombieEnable“ öffnen, erhält die Konsole die folgende Ausgabe:
***-[CFString _isNaturallyRTL]: Nachricht an freigegebene Instanz gesendet 0x52cc690
Erklärung: Die Nachricht „_isNaturallyRTL“ wurde an ein freigegebenes Objekt gesendet. Der obigen Aussage nach zu urteilen, könnten es diese beiden Objekte sein: tfContent und bodyText.
Sie können die Speicheradresse von tfContent oder bodyText drucken, um zu sehen, welches Objekt freigegeben wurde:
NSLog(@"tfContent:0x%x",(int) tfContent); NSLog(@"bodytext:0x%x",(int) bodyText);
Das Ergebnis zeigt, dass bodyText vorzeitig freigegeben wurde:
tfContent: 0x52cf160 bodytext: 0x52cc690
Behalten Sie bodyText an der richtigen Stelle und das Problem ist gelöst.
23. putpkt:write failed: Broken pipe error
Starten Sie das Gerät neu.
24. .hfile nicht gefunden
Tatsächlich ist die .h-Datei nicht im Ziel enthalten. Wählen Sie die entsprechende .m-Datei aus, klicken Sie auf die Schaltfläche „ShowUtilities“ (am rechten Ende der Symbolleiste), suchen Sie unter „Utilities“ nach „Target Membership“, deaktivieren Sie „Target“ und aktivieren Sie es dann erneut. Dies entspricht dem Hinzufügen der .m-Datei zur Buildphase des Ziels.
25. Xcode 4: So konvertieren Sie xib für iPhone in für iPad
Konvertieren Sie xib in Xcode 3.x von der iPhone-Version in die iPad-Version über das Menü „iPad-Version erstellen“.
Aber in Xcode 4.x kann dieses Menü nicht gefunden werden. Nach einigen Untersuchungen stellte der Autor fest, dass die XIB mit der folgenden Methode in die iPad-Version konvertiert werden kann.
1. Ändern Sie die xib-Quelldatei
Die xib-Datei ist eigentlich eine XML-Datei. Klicken Sie im Projektnavigator mit der rechten Maustaste auf die xib-Datei und wählen Sie „Öffnen als -> Quellcode“. Sie können die xib-Datei im Quellcodemodus anzeigen und ändern Es wird zu „com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB“, also „.iPad“ hinzugefügt.
Drücken Sie ⌘+F, um die Suchleiste zu öffnen, und klicken Sie auf das Menü „Ersetzen“, um den Modus in den Ersetzungsmodus zu ändern. Ersetzen Sie alle „IBCocoaTouchFramework“ in der xib-Datei durch „IBIPadFramework“.
Drücken Sie ⌘+S, um die Änderungen zu speichern.
2. Ändern Sie die Ansichtsgröße von xib.
Klicken Sie mit der rechten Maustaste auf die xib-Datei, wählen Sie „Öffnen als -> Interface Builder – iOS“ und öffnen Sie sie im IB-Modus.
Wählen Sie die Stammansicht (UIView) in der xib-Datei aus, suchen Sie im Eigenschaftenfenster nach der Option „Größe“ und ändern Sie sie in „Voller iPad-Bildschirm“.
Jetzt können Sie eine iPad-Version von xib haben.
26. Die Abmessungen des Symbols (0 x 0) entsprechen nicht den Größenanforderungen.
Öffnen Sie die BuildSettings des Projekts, suchen Sie nach „PNG-Dateien komprimieren“ und setzen Sie den Wert auf „Nein“.
Oder:
Wählen Sie die PNG-Datei aus, suchen Sie den Dateityp im FileInspector-Bedienfeld und ändern Sie ihn von „PNG“ in „Icon“.
27. Warnung: kein vorheriger Prototyp für die Funktion
Ziel öffnen ->BuildSettings, suchen Sie nach Prototypen und ändern Sie „Missing Function ProtoTypes“ in „NO“.
28. Der Fehler „Befehl /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/clangfailed mit Exit-Code 1“ tritt auf, wenn CorePlot kompiliert wird.
Bitte ändern Sie das Schema von iOS Device auf iPhone 5.0 Simulator . Oder ändern Sie den Compiler für C/C++ auf LLVM GCC4.2. Gleichzeitig unterstützt Core Plot 1.0 ältere Armv6-CPUs nicht mehr.
29. Die Verwendung von CABasicAnimation zum Ändern des Alpha-Werts von UIView ist ungültig.
Der Alpha-Wert von UIView ist in CALayer tatsächlich „Opacity“.
30. CorePlost: Nach dem Anpassen der Achsenbeschriftung wird das Häkchen nicht angezeigt.
Setzen Sie die „majorTickLocations“ von Axis auf die Stelle, an der Sie das Häkchen anzeigen möchten.
NSMutableArray*customTickLocations=[[[NSMutableArray alloc]init]autorelease]; for(int i=0;i<10;i++){ [customTickLocationsaddObject:[NSNumber numberWithInt:i]]; } xAxis.majorTickLocations=[NSSetsetWithArray:customTickLocations];
31. Angepasste UITableViewCell, indentationLevel kann nicht wirksam werden
Die Methode „layoutSubviews“ muss in der angepassten UITableViewCell implementiert werden.
- (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 ); } }
Das Obige ist der Inhalt der iOS-Entwicklungsfragen (3). Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!