Iphone ARC语义问题:对于';UIViewController';声明选择器';登录结果:';

Iphone ARC语义问题:对于';UIViewController';声明选择器';登录结果:';,iphone,ios,automatic-ref-counting,selector,semantics,Iphone,Ios,Automatic Ref Counting,Selector,Semantics,我在谷歌上搜索了很多关于上面的标题,但是没有找到我想要的解决方案。 我有一个ARC项目,它使用静态库进行服务调用。当单击“登录”按钮凭据传递到库并获得对登录视图控制器的响应时,问题就发生在这里。我无法将数据传递给发送请求的view controller。 以下是发生错误的代码: - (void)loginResult:(LoginData *)logData { [viewCtrl loginResult:logData]; ->No Visible @Interface for '

我在谷歌上搜索了很多关于上面的标题,但是没有找到我想要的解决方案。 我有一个ARC项目,它使用静态库进行服务调用。当单击“登录”按钮凭据传递到库并获得对登录视图控制器的响应时,问题就发生在这里。我无法将数据传递给发送请求的view controller。 以下是发生错误的代码:

- (void)loginResult:(LoginData *)logData {
   [viewCtrl loginResult:logData]; ->No Visible @Interface for 'UIViewController' declares the selector 'loginResult:'
}
in.h(静态库类)

#导入
@接口MobileWebMethods:NSObject{
UIViewController*viewCtrl;
}
@属性(非原子,保留)UIViewController*viewCtrl;
-(无效)登录结果:(登录数据*)日志数据;
试试这个

objc_msgSend(viewCtrl, @selector(loginResult:),logData);
试试这个

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

抱歉,我没有注意到它是一个NSObject类,在您所做的操作中有一个逻辑错误

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

MobileWebMethods *webMethods = [[MobileWebMethods alloc] init];
然后打电话:

[webMethods loginResult: ... ];

抱歉,我没有注意到它是一个NSObject类,在您所做的操作中有一个逻辑错误

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

MobileWebMethods *webMethods = [[MobileWebMethods alloc] init];
然后打电话:

[webMethods loginResult: ... ];


实际上我发现你的代码很混乱,你接口了一个名为
MobileWebMethods
的类,我认为它是一个模态,在这个模态中,你有一个名为
viewCtrl
的UIViewController属性,它是一个控制器,我很好奇,为什么要这样做而不是遵守模态控制器视图的规则?我认为,如果您创建UIViewController的子类,并在该控制器中创建一个名为
MobileWebMethods
的属性模态,问题就会解决,这不是更好吗

实际上我发现你的代码很混乱,你接口了一个名为
MobileWebMethods
的类,我认为它是一个模态,在这个模态中,你有一个名为
viewCtrl
的UIViewController属性,这是一个控制器,我很好奇,为什么要这样做而不是遵守模态控制器视图的规则?我认为,如果您创建UIViewController的子类,并在该控制器中创建一个名为
MobileWebMethods
的属性模态,问题就会解决,这不是更好吗

是的,我已声明,甚至没有案例不匹配请编辑您的答案,以包含此定义/实现以及设置viewCtrl的位置。或者,我遗漏了一件事,viewCtrl是自定义视图控制器还是只是UIViewController???,这将不会在UILTIT中包含此函数,它是一个viewcontroller,并且声明了方法。我再次编辑了我的答案,您的类是NSObject类型,从您之前的问题来看,我认为它是一个UIViewController。您在此处尝试执行的操作中存在逻辑错误是的,我已声明,甚至没有大小写不匹配请编辑您的答案,以包含此定义/实现以及设置viewCtrl的位置。或者,我遗漏了一件事,viewCtrl是自定义视图控制器还是只是UIViewController???,这将不会在UILTIT中包含此函数,它是一个viewcontroller,并且声明了方法。我再次编辑了我的答案,您的类是NSObject类型,从您之前的问题来看,我认为它是一个UIViewController。此处尝试执行的操作中有一个逻辑错误,似乎
viewCtrl
只是一个
UIViewController
,而不是实现方法
loginResult:
的自定义子类。您确定
viewCtrl
指向自定义类的实例吗?请共享更多的代码。如果有任何更新,您是否在添加所有代码以便我查看情况方面取得了任何进展或计划?似乎
viewCtrl
只是一个
UIViewController
,而不是实现方法
loginResult:
的自定义子类。您确定
viewCtrl
指向自定义类的实例吗?请分享更多的代码。如果有任何更新,您是否在添加所有代码方面取得了任何进展或计划,以便我可以查看情况?我只使用MVC,问题是从模型中获取数据并发送到controllerWell,我认为发送数据到控制器不需要在这种模式下保持控制器,这在我看来是非常罕见的。我的建议是,你可以在你的modal like+(LoginResult*)LoginResult:(LoginData*)数据中声明一个类方法,在你的控制器中,你只需将数据传递给modal,就可以得到结果。这只是我的意见。我只使用MVC,当问题是从发送给controllerWell的模型中获取数据时,我认为向控制器发送数据不需要在这种模式下保存控制器,这在我看来非常罕见。我的建议是,您可以在您的模式中声明一个类方法,比如+(LoginResult*)LoginResult:(LoginData*)数据,在您的控制器中,您只需将数据传递给模态,就可以得到结果。这只是我的意见。它显示我警告“隐式声明库函数”,但控制未传递给methodimport此库,#import它显示我警告“隐式声明库函数”,但控制未传递给methodimport此库,#进口