OStack程序员社区-中国程序员成长平台

标题: iphone - 我的@property 已声明但我仍然收到可能无法响应警告 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 09:08
标题: iphone - 我的@property 已声明但我仍然收到可能无法响应警告

我不喜欢到处乱扔警告,而这个警告一直困扰着我。关于我做错了什么的任何想法?我有大量使用相同方法的属性,但它们都没有给我警告。为什么 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-推荐答案


您发布的代码看起来是正确的。这意味着编译器正在从某个地方引入 OnlinePeerBrowser 类的另一个声明。

如果是循环导入,则不要在“OnlinePeerBrowser.h”中导入“WelcomeViewController.h”。相反,在 OnlinePeerBrowser.h 中使用前向声明,例如@class WelcomeViewController ,并在 OnlinePeerBrowser.m 中导入“WelcomeViewController.h”

关于iphone - 我的@property 已声明但我仍然收到可能无法响应警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7506662/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4