菜鸟教程小白 发表于 2022-12-12 12:34:02

iOS:将对象从 oldArray 复制到 newArray


                                            <p><p>我有由许多小数组组成的 oldArray。
现在我想取其中一个对象(一个小数组),修改它,然后(如果用户点击按钮)替换它。
为此:</p>

<p>第 1 步 - 我创建了一个新数组,用那个小对象初始化了 newArray。</p>

<pre><code>openedCartProduct = nil;
openedCartProduct = ;
];
</code></pre>

<p>第 2 步 - 修改数组。</p>

<pre><code>[ setObject:] forKey:kRABAT_KEY];
</code></pre>

<p>第 3 步 - 替换 oldArray 中的对象。</p>

<p>在第 2 步中,修改也发生在 oldArray 中,甚至在替换对象之前。我在这里错过了什么吗?</p>

<p>提前谢谢各位! :)</p>

<p><strong>编辑:</strong>
修改的对象是一个小数组,由我正在修改的索引 0 处的 NSMutableDictionary 组成。</p>

<p><strong>编辑</strong>
似乎我们需要一个 DEEP COPY 这里。我找到了一个解决方案,但它是一个 hack,但效果很好,而且很简单:</p>

<pre><code>openedCartProduct = ]];
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>您正在复制对原始小数组的引用。所以当你改变它时,它指向第一个数组中的小数组。这包含所有原始内容。如果您想在不更改第一个数组的情况下对其进行更改,则需要执行复制,在本例中为深层复制,因为它包含一个 mutableDictionary(我假设您也想复制它)。</p></p>
                                   
                                                <p style="font-size: 20px;">关于iOS:将对象从 oldArray 复制到 newArray,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/17700219/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/17700219/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: iOS:将对象从 oldArray 复制到 newArray