Was bedeutet das "unrecognized selector geschickt Instanz" Fehler bedeuten?
Ich bin immer ein Absturz in meine app aufgrund des folgenden Fehlers:
-[NSCFString count]: unrecognized selector sent to instance 0x612b060
Kann mir jemand sagen, was bedeutet es und wie finde ich die Zeile in meinen code mit Verweis 0x612b060
- die compiler r u verwenden?
- Diese Frage ist fast die gleiche wie diese eine oder viele andere, haben Sie versucht, zu suchen, bevor man fragt?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wird, die Sie anrufen
count
Methode auf ein Objekt (wahrscheinlich ein collection.e.g-array, Wörterbuch, oder legen), die freigegeben oder wurde noch nicht initialisiert, noch nicht.Sie senden die Nachricht "zählen" auf NSCFString, bedeutet, den Aufruf "count" - Methode auf NSString-Datentyp.
Finden Sie den code, können Sie den Stack-trace, aber ich bin sicher, was Sie tun, ist:
Zuweisen NSString Daten auf NSArray oder (Array-Datentyp) und versucht zu zählen.
Meisten wahrscheinlich, dass dies geschieht, weil man ein collection-Objekt (z.B. NSArray, NSDictionary), die Sie nicht behalten richtig.
Versuchen, NSZombies zu finden das Objekt, das freigegeben haben.
Get Info
Variables to be set in the environment
erstellen Sie eine variable namensNSZombieEnabled
und setzen Sie seinen Wert aufYES
. Vergessen Sie nicht, um es zu aktivieren.Nachdem du das getan hast Debuggen dieses Problems sollten Sie deaktivieren NSZombies. NSZombies nicht loslassen Speicher, es ist einfach markiert die Objekte freigegeben werden.
So werden Sie am Ende in einem Speicher-Warnung, früher oder später.
Sie können entfernen Sie einfach das Häkchen davor deaktivieren NSZombies.
Meinst du zu nennen
length
auf Ihrem string?Vielleicht jemand diesen brauchen:
Wenn ich hatte diese Art von problem habe ich:
[ myarray retain];
nach
myarray = [NSArray arrayWithObjects: ...];
und es hat funktioniert. Ich glaube, es war, weil mein array zu zerstören, sich zu früh.
Aber ich don' t wissen, wie kann ich jetzt dieses release-Objekt?
Nur
[myarray autorelease]
? Gibt es etwas, das Gegenteil zu behalten ?Ask Question
- button auf der mainpage. Ansonsten ist Ihre Frage, nicht sichtbar für die community.retain
istrelease
.autorelease
gibt die Verantwortung zu rufenrelease
für ein beibehalten Objekt, um die aktuelle autorelease pool.Einem Beispiel aus der Praxis:
Manchmal gibt es einen praktischen Unterschied, die ich nicht verstehe, klar doch.
valueForKey
hat nicht funktioniert, in der SOGo-3.1.4 code versucht, rufen Sie eine nicht verfügbare "Methode"ASProtocolVersion
auf diecontext
Objekt:in der Erwägung, dass
objectForKey
funktioniert (und das ist der übliche Weg, um die Abfrage dercontext
Objekt elesewhere im code).Sehen https://github.com/inverse-inc/sogo/pull/217/files