Noch lernen Objective-C/iPhone SDK hier. Ich denke, ich weiß, warum das nicht funktionierte, aber ich wollte es nur bestätigen.Unterschied zwischen [[NSMutableDictionary alloc] initWithObjects: ...] und [NSMutableDictionary dictionaryWithObjects: ...]?
In awakeFromNib
, wenn ich [[NSMutableDictionary alloc] initWithObjects:...]
es ordnet tatsächlich (iPhone) Systemspeicher mit diesen NSMutableDictionary
Daten, aber wenn ich [NSMutableDictionary dictionaryWithObjects:...]
es verwende, ist nur in dem Stapel rechts zur Verfügung? Wenn ich beispielsweise in Zukunft versuche, über einen Knopfdruck über IBAction auf myMutableDict
zuzugreifen, könnte das Objekt myMutableDict
freigegeben worden sein, was zum Absturz meiner App geführt hat, obwohl ich es in meiner .h-Datei so definiert habe und synthetisiert es:
@property (nonatomic, retain) NSMutableDictionary *myMutableDict;
Aus irgendeinem Grund zu [[NSMutableDictionary alloc] initWithObjects:...]
Wechsel fixiert diese.
also grundsätzlich jedes Mal, wenn Sie ein Objekt für die Verwendung in Ihrem gesamten Projekt oder was auch immer synthetisieren, zum Beispiel würden Sie immer initWithDictionary verwenden wollen, damit es nicht zufällig auf Sie freigegeben wird, richtig? – taber
richtig, oder [[NSMutableDictionary dictionaryWithObjects ...] behalten] ist gleich – cobbal
ok klingt gut, danke! – taber