Monday 25 September 2017

Edgesforextendedlayout Scrollviewdidscroll


Ich scheine, einige overzealous Freigabe, die in meinem obj-C app - immer Fehlermeldung - myobj Freigabe: Nachricht an deallocated Instanz 0x5633b0 Ich weiß, die Klasse der Objekt-Instanz das Problem verursacht, aber diese Klasse wird überall verwendet, um zu erstellen Viele Fälle. Mein Gedanke ist, ich könnte einige Protokollierung in der init-Methode der Klasse zu protokollieren, was 0x5633b0 entspricht, die mir helfen, aufzuspüren, wo die Instanz erstellt wird. Was genau ist die 0x5633b0 und gibt es eine Möglichkeit, ich kann den Zugriff auf diesen Wert im Code, um es zu Protokollieren Was funktionierte am besten für mich, wenn ich in ähnliche Probleme vor kurzem war die folgende: In der Projekt-Edit Active Executable - Argumente Registerkarte - Umgebungsvariablen Abschnitt hinzugefügt und auf JA die folgenden Variablen: NSAutoreleaseFreedObjectCheckEnabled. NSZombieEnabled und NSDebugEnabled. Im Menü "Ausführen" wählte ich Enable Guard Malloc aus. Mit diesen Einstellungen der Debugger mehr Hinweise darauf, was ist falsch mit meinem Code. (Ich fand diese Tipps hier) beantwortet Mar 4 10 at 9:11 Enable Guard Malloc doesn39t Arbeit beim Debuggen auf einem Gerät, zumindest kann ich es nicht und kann dies bestätigen: Diskussionen. applethread1572993start0amptstart0 ndash JeroenEijkhof Aug 21 11 at 5:23 JeroenEijkhof ist Recht. Wache malloc don39t Arbeit im Gerät. Und sie können in der 39diagnostice39 Registerkarte aktiviert werden, keine Notwendigkeit, in env var setzen. Aber NSAutoreleaseFreedObjectCheckEnabled muss als env var festgelegt werden. Ndash karim Oct 3 14 um 8:00 0x5633b0 ist wahrscheinlich die Adresse des freigegebenen Objekts (der Wert von myobj). Sie können NSLog oder printf mit p verwenden, um es zu drucken. Sie können auch die Instrumente profiler finden, um das freigegebene Objekt zu finden. 1. Starten Sie den Profiler: 2. Wählen Sie die Zombies und starten Sie den Profiler. 3. Klicken Sie durch den Simulator, bis Sie Ihren deallocated Störungsfall schlagen Sie nicht Ihren Speicher ordnungsgemäß handhaben - youre benennende Freigabe Autorelease auf irgendeinem Gegenstand mehr als das youre, das behalten zurückruft. Stellen Sie sicher, dass Sie alle Regeln befolgen, die im Memory Management Programming Guide for Cocoa aufgeführt sind. 0x5633b0 ist nur die Adresse des Speicherplatzes, an dem das Objekt gespeichert wird. Eine Sache, die Sie ausprobieren können, ist, der init-Methode einen Code hinzuzufügen: Wenn Sie andere init-Methoden (zB initWithCoder, die für Objekte, die von einem XIB instanziiert werden) aufgerufen haben, sollten Sie dieses Snippet auch in diese Methoden einfügen . Setzen Sie einen Haltepunkt auf der NSLog-Zeile, und dann sehen, wenn es getroffen wird. Beachten Sie, dass es mehrere Male getroffen werden, wenn ein Objekt zugewiesen wird, an dieser Adresse, deallocated, und dann ein anderes Objekt geschieht, um an der gleichen Adresse neu zugeordnet werden. Der letzte Treffer vor dem Absturz ist der, den Sie wollen. Beantwortet Mar 2 09 at 2:24 Woher weißt du, die symbol39s Adresse im Voraus Isn39t es jedes Mal, wenn Sie den Code ausführen. Jedenfalls ist es so. Mit etwas wie quotinfo Symbol 0xabcdfgquot in der Debugger-Konsole gab mir bessere Ergebnisse als Ihre probosal. ndash Leviathan 18. Januar 11 um 10:15 Uhr Ihre Antwort 2017 Stapel Wechsel, IncLearn iPhone-Anwendung ltkeygtNSAppTransportSecurityltkeygt ltdictgt ltkeygtNSExceptionDomainsltkeygt ltdictgt ltkeygttest. testdomainltkeygt ltdictgt ltkeygtNSIncludesSubdomainsltkeygt lttruegt ltkeygtNSTemporaryExceptionRequiresForwardSecrecyltkeygt ltfalsegt ltdictgt NSString strURL google NSURL URL NSURL URLWithString: NSString string :, strURL stringByAddingPercentEncodingWithAllowedCharacters: NSCharacterSet URLQueryAllowedCharacterSet NSURLRequest Anfrage NSURLRequest requestWithURL: URL NSURLSession Sitzung NSURLSession sharedSession NSURLSessionDataTask Aufgabe Sitzung dataTaskWithRequest: Anfrage completionHandler: (NSData Daten, NSURLResponse Antwort, NSError Fehler) dict NSJSONSerialization JSONObjectWithData: Daten keyArray dict objectForKey: Videos NSLog (Antwort:, Rezepte) tblvw reload Import ltFBSDKLoginKitFBSDKLoginKit. hgt Import ltFBSDKCoreKitFBSDKCoreKit. hgt - (BOOL) Anwendung: (UIApplication) Anwendung openURL: (NSURL) url sourceApplication: (NSString) sourceApplication Anmerkung: (id) Anmerkung Rückkehr FBSDKApplicationDelegate sharedInstance Anwendung: Anwendung openURL: url sourceApplication: sourceApplication Anmerkung: Anmerkung - (void) applicationDidBecomeActive: (UIApplication) Anwendung FBSDKAppEvents activateApp - (BOOL) Anwendung: (UIApplication) Anwendung didFinishLaunchingWithOptions: (NSDictionary) launchOptions Rückkehr FBSDKApplicationDelegate sharedInstance Anwendung: Anwendung didFinishLaunchingWithOptions: launchOptions - (IBAction) facebookLogin: (id) sender wenn FBSDKLoginManager alloc init FBSDKLoginManager anmelden ( FBSDKAccessToken currentAccessToken) NSLog (Token ist verfügbar. , FBSDKAccessToken currentAccessTokentokenString) Selbst fetchUserInfo sonst Login logInWithReadPermissions: E-Mail fromViewController: self-Handler: (FBSDKLoginManagerLoginResult Ergebnis NSError Fehler), wenn (Fehler) NSLog (Anmelden Prozessfehler) else if (result. isCancelled) NSLog (Benutzer abgebrochen Login) sonst NSLog (Anmelden Success) if (result. grantedPermissions containsObject: E-Mail) NSLog (Ergebnis:, Ergebnis) Selbst fetchUserInfo sonst SVProgressHUD showErrorWithStatus. Facebook E-Mail-Berechtigungsfehler - (void) fetchUserInfo if (FBSDKAccessToken currentAccessToken) NSLog (Token verfügbar ist, FBSDKGraphRequest alloc initWithGraphPath: (FBSDKGraphRequestConnection-Verbindung, id Ergebnis, NSError-Fehler) if (Fehler) NSLog (Ergebnis:, Ergebnis) NSString E-Mail Ergebnis objectForKey: email NSString userId Ergebnis objectForKey: id

No comments:

Post a Comment