繁体   English   中英

ARC语义问题:“ UIViewController”没有可见的@Interface声明选择器“ loginResult:”

[英]ARC Semantic Issue: No Visible @Interface for 'UIViewController' declares the selector 'loginResult:'

我已经对上面的标题进行了很多搜索,但是无法获得我想要的解决方案。 我有一个使用ARC的项目,该项目使用静态库进行服务调用。 当单击登录按钮凭据传递到库并将响应返回到登录视图控制器时,这就是发生问题的地方。 我无法将数据传递给发送请求的视图控制器。 这是发生错误的代码:

- (void)loginResult:(LoginData *)logData {
   [viewCtrl loginResult:logData]; ->No Visible @Interface for 'UIViewController' declares the selector 'loginResult:'
}

在.h中(静态库类)

#import <UIKit/UIKIt.h>
@interface MobileWebMethods : NSObject {
    UIViewController *viewCtrl;
}
@property (nonatomic, retain) UIViewController *viewCtrl;
- (void)loginResult:(LoginData *)logData;

抱歉,我没有注意到这是一个NSObject类,您在做什么时存在逻辑错误。

您已经创建了MobileWebMethods类,该类的类型为NSObject,而不是UIViewController。 您需要在单独的viewController中导入该文件并创建一个实例:

MobileWebMethods *webMethods = [[MobileWebMethods alloc] init];

然后致电:

[webMethods loginResult: ... ];

尝试这个,

objc_msgSend(viewCtrl, @selector(loginResult:),logData);

其实我发现您的代码很混乱,您连接了一个名为MobileWebMethods的类,我认为它是一个模态,在该模态中,您有一个名为viewCtrl的UIViewController属性,它是一个控制器,我很好奇,为什么要这样做我认为如果您创建UIViewController的子类,并且可以在此控制器内创建一个名为MobileWebMethods的属性模式,会更好吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM