我不喜欢到处乱扔警告,而这个警告一直困扰着我。关于我做错了什么的任何想法?我有大量使用相同方法的属性,但它们都没有给我警告。为什么 Xcode 不能识别这个?
虽然应用程序按预期工作,但 Xcode 给了我以下编译时警告:
'OnlinePeerBrowser' may not respond to '-setMyParent:'
我在 OnlinePeerBrowser.h 中的属性声明
#import "WelcomeViewController.h"
@interface OnlinePeerBrowser : UIViewController <UITableViewDelegate, UITableViewDataSource, NSNetServiceBrowserDelegate> {
WelcomeViewController *_myParent;
}
@property (nonatomic, assign) WelcomeViewController *myParent;
OnlinePeerBrowser.m 有
@synthesize myParent=_myParent;
我在 WelcomeViewController.m 中收到关于 setMyParent 的警告...
#import "WelcomeViewController.h"
#import "OnlinePeerBrowser.h"
@implementation WelcomeViewController
- (void)peerPickerControllerGKPeerPickerController *)picker didSelectConnectionTypeGKPeerPickerConnectionType)type {
...
OnlinePeerBrowser *controller = [[OnlinePeerBrowser alloc]
initWithNibName"OnlinePeerBrowser" bundle:nil];
[controller setMyParent:self];
}
另外,奇怪的是我这里也不能使用点语法。
controller.myParent = self;
给我以下错误:
/Users/vesselhead/Development/iPhone/DJBox/WelcomeViewController.m:254: error: request for member 'myParent' in something not a structure or union
我觉得我一定错过了一些非常简单的东西。
Best Answer-推荐答案 strong>
您发布的代码看起来是正确的。这意味着编译器正在从某个地方引入 OnlinePeerBrowser 类的另一个声明。
如果是循环导入,则不要在“OnlinePeerBrowser.h”中导入“WelcomeViewController.h”。相反,在 OnlinePeerBrowser.h 中使用前向声明,例如@class WelcomeViewController ,并在 OnlinePeerBrowser.m 中导入“WelcomeViewController.h”
关于iphone - 我的@property 已声明但我仍然收到可能无法响应警告,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/7506662/
|