【问题标题】:Allocation using temp, why is this way better?使用 temp 分配,为什么这种方式更好?
【发布时间】:2011-03-27 03:47:17
【问题描述】:
//.h file
@property(nonatomic, retain) NSMutableDictionary *data;

//.m file
NSMutableDictionary *temp = [[NSMutableDictionary alloc] init];
self.data = temp;
[temp release];

为什么这种方式(使用临时变量)比这个好

self.data = [[NSMutableDictionary alloc] init];

有什么区别?

【问题讨论】:

    标签: objective-c


    【解决方案1】:

    第二种方式会泄漏新创建的字典。你可以使用:

    self.data = [NSMutableDictionary dictionary];
    

    它会像你的第一个例子一样安全。

    已编辑以匹配 OP 对问题的更新。

    【讨论】:

    • 这段代码将被添加到“init”方法中,当我创建对象时我没有任何内容,但我稍后会添加值..
    • @LCYSoft,这是行不通的。一旦创建了NSDictionary,您就不能将 any 对象添加到它。也许你想要NSMutableDictionary
    • 这是一个不可变的字典。您以后不能添加值。如果您想稍后添加值,请使用 NSMutableDictionary。
    • 我删除了我的答案并投了这个答案,因为它基本上是相同的,并且卡尔首先回答了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-10
    • 1970-01-01
    • 2015-04-06
    • 1970-01-01
    • 2013-01-28
    • 2013-07-07
    相关资源
    最近更新 更多