菜鸟教程小白 发表于 2022-12-13 09:00:25

ios - 在 NSString 的 initWithFormat :arguments: method 上更改参数的值


                                            <p><p>我很难弄清楚以下几点:</p>

<p>我有一个初始化方法,它创建一个未使用的格式化 NSString,其中包含一些 <strong>未初始化</strong>的 NSString 参数,如下所示:</p>

<p><code>NSString *initialString = ;</code></p>

<p>稍后在我的程序中,我用一些值初始化这些参数,但是当我打印到 <code>NSLog</code> 我的 <code>initialString</code> 时,参数仍然是 <code>null</code>。
如果我检查我的参数,它们就会被初始化并提供我给它们的正确值。</p>

<p><code>initialString</code> 是对象的强引用属性,而参数是 <code>static NSStrings</code>。</p>

<p>所以结论:</p>

<ol>
<li>我想在我的程序开始时用某种格式和某些未初始化的参数(硬编码)初始化一个 NSString。</li>
<li>稍后,在运行时,我想使用我的初始字符串并让它从现在初始化的参数中读取值。</li>
</ol>

<p>我怎样才能做到这一点?使用传递引用还是 KVO?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我不是<em>确定</em>我理解你,但是为了使用更新的值重新初始化 <code>initialString</code>,你需要调用 <code>stringWithFormat:</code> 再次使用新值。这是因为 <code>stringWithFormat:</code> 将采用任何值 <code>arg1</code> 和 <code>arg2</code> 在它被调用时,对这些值的更改不会影响格式化字符串。</p>

<p>最好将该功能放入一个私有(private)方法中,以便在 <code>arg1</code> 或 <code>arg2</code> 更改时更新实例变量(我假设是这样):</p>

<pre><code>- (void)formatInitialStringWithArg1:(id)arg1 andArg2:(id)arg2
{
    self.initialString = ;
}
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 在 NSString 的 initWithFormat :arguments: method 上更改参数的值,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/31351454/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/31351454/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 在 NSString 的 initWithFormat :arguments: method 上更改参数的值