2012-03-28 14 views

Antwort

0

Wenn dies der einzige Ort ist, an dem -isNotExpired aufgerufen wird, enthält der automatische Freigabepool, den Sie eingerichtet haben, Objekte, die in -isNotExpired (einschließlich startDate) freigegeben sind.

Beachten Sie, dass in einer normalen Cocoa-Anwendung, NSApplicationMain() in main() in main.m genannt wird für Dich einen Autofreigabepool erstellen, sodass dieser Code würde sowieso nicht auslaufen. Im Allgemeinen erstellen Sie Ihren eigenen Autorelease-Pool nur in Fällen, in denen Sie viele temporäre Objekte mit einer kurzen Nutzungsdauer (z. B. in einer Schleife) generieren und Ihre Speicherauslastung niedrig halten möchten.

+0

Oh, sicher, das ist ein weiterer Grund, einen eigenen Autorelease-Pool zu erstellen. Trotzdem sehe ich nichts falsches mit dem Code, den Sie gepostet haben. –

+0

Die 'continue'-Anweisung ist bedeutungslos, wie geschrieben .... aber die' ... 's implizieren, dass es eine Schleife um sie herum geben könnte. – bbum

+0

Vergessen Sie nicht, dass ein weiterer Grund für die Erstellung eines Autorespulepools '__attribut __ ((Konstruktor))' ist! –