Ich erhalte die folgende Warnung.Obj-C, Objekt mit Referenzzählung wird verwendet, nachdem es freigegeben wurde?
Referenzzählung Objekt verwendet wird, nachdem es
ARC freigegeben wird, wird für diese Datei aktiviert.
Ich habe meine App nicht zur Verwendung von ARC konvertiert und habe derzeit kein richtiges Verständnis davon. Aber auf einen Blick bin ich verwirrt, warum dieser Code ein Problem haben sollte (aus einer Bibliothek), ich meine, ich weiß, Autorelease sollte hier nicht verwendet werden?
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
id uuid = [defaults objectForKey:@"uniqueID"];
if (uuid)
uniqueID = (NSString *)uuid;
else {
CFStringRef cfUuid = CFUUIDCreateString(NULL, CFUUIDCreate(NULL));
uniqueID = (__bridge NSString *)cfUuid;
CFRelease(cfUuid);
[defaults setObject:uniqueID forKey:@"uniqueID"]; // warning here
}
EDIT @JohnCalsbeek, @epatel, @Chuck Danke, habe ich versucht, nur, dass ich eine neue Warnung auf CFStringRef cfUuid
Linie bekommen, potenziellen Leck sagen.
Heres die vollständige Datei https://github.com/MugunthKumar/MKStoreKit/blob/master/MKSKProduct.m
Danke, aber das gibt mir Fehler https://img.skitch.com/20120326-b9692kiegw7xheipj8rgw3y53.jpg – Jules
@Jules Eigentlich habe ich gerade festgestellt, dass dies eine CCFUID-Kennung ist, lassen Sie mich meine Antwort bearbeiten. – Pochi
@Jules hat vergessen, Ihnen zu sagen, mit dem Clang Static Analyzer wird dies sehr einfach zu verstehen. (Sie können es in Ihrem Projekt Debug-Optionen drehen) – Pochi