iphone - 我的@property 已声明但我仍然收到可能无法响应警告
<p><p>我不喜欢到处乱扔警告,而这个警告一直困扰着我。关于我做错了什么的任何想法?我有大量使用相同方法的属性,但它们都没有给我警告。为什么 Xcode 不能识别这个?</p>
<p>虽然应用程序按预期工作,但 Xcode 给了我以下编译时警告:</p>
<pre><code>'OnlinePeerBrowser' may not respond to '-setMyParent:'
</code></pre>
<p>我在 OnlinePeerBrowser.h 中的属性声明</p>
<pre><code>#import "WelcomeViewController.h"
@interface OnlinePeerBrowser : UIViewController <UITableViewDelegate, UITableViewDataSource, NSNetServiceBrowserDelegate> {
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 "WelcomeViewController.h"
#import "OnlinePeerBrowser.h"
@implementation WelcomeViewController
- (void)peerPickerController:(GKPeerPickerController *)picker didSelectConnectionType:(GKPeerPickerConnectionType)type {
...
OnlinePeerBrowser *controller = [
initWithNibName:@"OnlinePeerBrowser" 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 'myParent' 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]