【问题标题】:Memory issue when encoding an NSDecimalNumber like this?像这样编码 NSDecimalNumber 时的内存问题?
【发布时间】:2009-08-26 20:56:34
【问题描述】:

我不确定:

// assume value is a NSDecimal type and exists
NSDecimalNumber *decNum = [[NSDecimalNumber alloc] initWithDecimal:value];
[encoder encodeObject:decNum forKey:@"someKey"];
[decNum release];

我将 NSDecimal 包装到一个 NSDecimalNumber 对象中。我必须在某个地方发布它。但我不确定......编码器是否保留该对象,或者在某些情况下我对对象的 -release 是否会成为问题?我相信编码器实际上只是对该对象的裸数据进行“快照”并记住它,但同样,不确定。也许有人可以帮助解决问题。在文档中搜索“释放”和“保留”,但他们没有在上下文中提及。

【问题讨论】:

    标签: iphone cocoa-touch uikit


    【解决方案1】:

    因为你做了一个明确的alloc,你也有责任做一个release。编码器可以在您的函数调用期间使用该对象,但如果它想保留它超出此范围,则需要retain 或复制它,但您的代码不需要知道它到底在做什么。

    【讨论】:

    • 谢谢。我不确定该编码器是否会在需要时保留它,但是您是对的,这不应该是我的问题……如果它需要更长的时间,则必须保留它。但是如果他们在手册中提到它也不会受到伤害;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多