菜鸟教程小白 发表于 2022-12-12 22:10:17

ios - registerDefaults 方法设置默认值而不是实际值。?


                                            <p><p>我想了解的功能,</p>

<pre><code> registerDefaults:];
</code></pre>

<p>registerDefaults 方法是否设置默认值而不是实际值。例如,假设我依次执行以下语句,</p>

<pre><code>[ setObject:@&#34;1&#34; ForKey:@&#34;test&#34;];
</code></pre>

<p>然后调用,</p>

<pre><code> registerDefaults:];
</code></pre>

<p>我看到 valueForKey 测试仍然是 1 而不是 2。
有人可以让我更好地理解 registerDefaults 还是我上面的 anology 正确?
如果我的anology 是正确的,那么这是否意味着只有在没有为该特定键设置对象时才使用默认值?
提前致谢。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><blockquote>
<p>Does registerDefaults method set the default value and not the actual value</p>
</blockquote>

<p>是的。只有当没有为该键设置特定值时,您在字典中传递给 <code>registerDefaults:</code> 的值才会返回给您。</p>

<p>当您为键 <code>@"test"</code> 设置值 <code>@"1"</code> 时,您“隐藏”了在 <code>registerDefaults 中注册的默认值:</code> 调用。</p>

<p>如果你这样做</p>

<pre><code> registerDefaults:@{@&#34;a&#34;:@&#34;1&#34;, @&#34;b&#34;:@&#34;2&#34;}, nil]];
[ setObject:@&#34;200&#34; ForKey:@&#34;b&#34;]; // Override
</code></pre>

<p>然后请求键<code>@"a"</code>和<code>@"b"</code>的值,你得到默认值<code>@"1"</code> <code>@"a"</code> 和 <code>@"200"</code> 的具体值对于 <code>@"b"</code>。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - registerDefaults 方法设置默认值而不是实际值。?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/23428005/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/23428005/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - registerDefaults 方法设置默认值而不是实际值。?