菜鸟教程小白 发表于 2022-12-13 01:52:08

ios - 访问器方式与静态 int 和静态 NSArray 不同


                                            <p><p>在此演示代码下方,流程的逻辑并不重要。 </p>

<pre><code>@interface ViewController ()&lt;UITableViewDataSource, UITableViewDelegate&gt;

@end

static int channelIndex = 0;
static NSMutableArray *channelsDataArray = nil;

@implementation ViewController
    - (void)getSomething {
            // Append the desiredValuesDict dictionary to the following array.
            if (!self.channelsDataArray) {
                self.channelsDataArray = [ initWithObjects: desiredValuesDict, nil];
            } else {
                ;
                NSLog(@&#34;channelsDataArray : %@&#34;, self.channelsDataArray);
            }

            // This will print the result I expected.
            NSLog(@&#34;channelIndxBefore: %i&#34;, channelIndex);
            ++channelIndex;
            NSLog(@&#34;channelIndxAfter: %i&#34;, channelIndex);
    }


@end
</code></pre>

<p>我的问题是,如果我以这种方式调用 channelIndex “self.channeIndex++”,它会出现警告:</p>

<blockquote>
<p>Format specifies type &#39;int&#39; but the argument has type &#39;NSInteger *&#39;
(aka &#39;long *&#39;)</p>
</blockquote>

<p>如果我将这种方式称为“channelIndex++”,它将正常工作。</p>

<p>奇怪的是,如果我只是调用的话,我还有另一个静态 NSMutableArray channelsDataArray </p>

<pre><code>;
</code></pre>

<p>它将对象添加到 var 中会正常工作。但如果我只是使用</p>

<pre><code>;
</code></pre>

<p>它不会显示任何警告,但 channelsDataArray 将为 nil,并且无法将 desiredValuesDict 分配给它。</p>

<p>问题:什么时候应该添加self前缀?为什么都是静态变量,一个要加self,另一个不用?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p><em>[原评论:]</em> </p>

<p>错误提示您有另一个 <code>@interface</code>(在 <code>.h</code> 文件中)并且您在该文件中声明了一个与您在引用文件中声明的全局变量。您需要删除其中一个,这取决于您的需要。</p>

<p>HTH</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 访问器方式与静态 int 和静态 NSArray 不同,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/44754822/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/44754822/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 访问器方式与静态 int 和静态 NSArray 不同