菜鸟教程小白 发表于 2022-12-13 08:48:25

ios - 我需要自己发布添加到 NSDictionary 的 NSNumbers 吗?


                                            <p><p>我正在创建一个 NSDictionary,它将对象映射到整数,并且因为 NSDictionaries 除了对象之外不处理任何东西,我必须用 或你有什么将每个整数包装在一个 NSNumber 对象中。我不清楚的是我是否需要释放我正在创建的所有这些 NSNumber 对象。我实际上并没有为它们分配空间,所以它们必须在自动释放池中,但我可以确定 NSDictionary 对象正确地保留和释放它们吗?假设我正在设置</p>

<pre><code>NSDictionary * myDict = [ initWithObjectsAndKeys: objectOne, , nil];
</code></pre>

<p>当我完成它时,我正在正确地释放 NSDictionary(因为我<em>正在</em>在我自己的代码中为它分配空间)。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>不,NSNumber 对象是自动释放的。</p>

<p>将它们添加到 NSDictionary 将导致向您添加的每个 NSNumber 对象发送保留消息。 </p>

<p>根据内存管理规则,您不拥有这些对象 - NSDictionary 以某种方式做到这一点 - 因此您不负责释放它们,NSDictionary 对象会这样做。</p>

<p>但是你拥有使用 alloc & initWithObjectsAndKeys: 创建的 NSDictionary。因此,您需要注意管理 myDict 对象的内存。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 我需要自己发布添加到 NSDictionary 的 NSNumbers 吗?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/7046756/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/7046756/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 我需要自己发布添加到 NSDictionary 的 NSNumbers 吗?