菜鸟教程小白 发表于 2022-12-12 11:43:07

ios - 在 viewDidLoad 之外时,NULL 自定义类对象?


                                            <p><p>u1Option 是一个 Option(自定义类)对象,它是
在我的 ViewController viewDidLoad 中声明并调用为:</p>
<pre><code>- (void)viewDidLoad{

    ;

    Option *u1Option = [init];

    ;

    NSLog(@&#34;Test1 Result: %@&#34;, u1Option.name);
}
</code></pre>
<p>Option 是一个继承自 NSObject 的自定义类,并在 Option.h 中声明了一个属性:</p>
<pre><code>@property NSString *name;
</code></pre>
<p>但是,如果尝试在 IBAction 中使用 u1Option,则不会传递任何内容,当我在 Test1 NSLOG 中获得“test”字符串时,相反,我在 Test2 NSLOG 中获得 NULL。</p>
<pre><code>- (IBAction)addFirstOption:(UIButton *)sender {

    NSLog(@&#34;Test2 Result: %@&#34;, u1Option.name);
}
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p><code>Option</code> 实例在 <code>viewDidLoad</code> 返回后立即销毁。您需要将其放在属性或实例变量中。如果它已经是一个属性或实例变量,那么你正在重新定义它,所以使用:</p>

<pre><code>u1Option = [ init];
</code></pre>

<p>以后可以通过使用<code>self.u1Option</code>或<code>_u1Option</code>来避免这个问题。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 在 viewDidLoad 之外时,NULL 自定义类对象?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/25712536/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/25712536/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 在 viewDidLoad 之外时,NULL 自定义类对象?