菜鸟教程小白 发表于 2022-12-13 09:08:50

iphone - 我的@property 已声明但我仍然收到可能无法响应警告


                                            <p><p>我不喜欢到处乱扔警告,而这个警告一直困扰着我。关于我做错了什么的任何想法?我有大量使用相同方法的属性,但它们都没有给我警告。为什么 Xcode 不能识别这个?</p>

<p>虽然应用程序按预期工作,但 Xcode 给了我以下编译时警告:</p>

<pre><code>&#39;OnlinePeerBrowser&#39; may not respond to &#39;-setMyParent:&#39;
</code></pre>

<p>我在 OnlinePeerBrowser.h 中的属性声明</p>

<pre><code>#import &#34;WelcomeViewController.h&#34;

@interface OnlinePeerBrowser : UIViewController &lt;UITableViewDelegate, UITableViewDataSource, NSNetServiceBrowserDelegate&gt; {

    WelcomeViewController *_myParent;
}

@property (nonatomic, assign) WelcomeViewController *myParent;
</code></pre>

<p>OnlinePeerBrowser.m 有</p>

<pre><code>@synthesize myParent=_myParent;
</code></pre>

<p>我在 WelcomeViewController.m 中收到关于 setMyParent 的警告...</p>

<pre><code>#import &#34;WelcomeViewController.h&#34;
#import &#34;OnlinePeerBrowser.h&#34;

@implementation WelcomeViewController

- (void)peerPickerController:(GKPeerPickerController *)picker didSelectConnectionType:(GKPeerPickerConnectionType)type {
...

    OnlinePeerBrowser *controller = [
                                     initWithNibName:@&#34;OnlinePeerBrowser&#34; bundle:nil];
    ;
}
</code></pre>

<p>另外,奇怪的是我这里也不能使用点语法。</p>

<pre><code>controller.myParent = self;
</code></pre>

<p>给我以下错误:</p>

<pre><code>/Users/vesselhead/Development/iPhone/DJBox/WelcomeViewController.m:254: error: request for member &#39;myParent&#39; in something not a structure or union
</code></pre>

<p>我觉得我一定错过了一些非常简单的东西。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>您发布的代码看起来是正确的。这意味着编译器正在从某个地方引入 <code>OnlinePeerBrowser</code> 类的另一个声明。 </p>

<ul>
<li><p>检查循环导入。 </p></li>
<li><p>检查您是否有多个 OnlinePeerBrowser.h 文件副本。 </p></li>
<li><p>将 <code>#warning Testing</code> 行添加到您的 OnlinePeerBrowser.h 文件中。然后,当您编译时,该警告应出现在日志中。如果没有出现该警告,则编译器不会拾取该文件。</p></li>
</ul>

<p>如果是循环导入,则不要在“OnlinePeerBrowser.h”中导入“WelcomeViewController.h”。相反,在 OnlinePeerBrowser.h 中使用前向声明,例如<code>@class WelcomeViewController</code> ,并在 OnlinePeerBrowser.m 中导入“WelcomeViewController.h”</p></p>
                                   
                                                <p style="font-size: 20px;">关于iphone - 我的@property 已声明但我仍然收到可能无法响应警告,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/7506662/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/7506662/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: iphone - 我的@property 已声明但我仍然收到可能无法响应警告