【问题标题】:Cannot find protocol declaration for 'MapViewControllerDelegate'; did you mean 'UIPageViewControllerDelegate'?找不到“MapViewControllerDelegate”的协议声明;你的意思是“UIPageViewControllerDelegate”吗?
【发布时间】:2019-05-06 12:52:37
【问题描述】:

我有一个用目标 C 编写的应用程序,我在 2 个月前上传了一个新版本,一切正常,现在我想添加一些东西,但我收到此错误:找不到MapViewControllerDelegate 的协议声明;你的意思是UIPageViewControllerDelegate

#import <UIKit/UIKit.h>

@protocol MapViewControllerDelegate <NSObject>

-(void)closeViewController;

@end

@interface RoomServiceViewController : UIViewController
@property (weak,nonatomic) id <MapViewControllerDelegate> delegate;

@end

找不到MapViewControllerDelegate 的协议声明;你是说UIPageViewControllerDelegate吗?

MapViewControllerDelegate 替换为UIPageViewControllerDelegate

MapViewControllerDelegate 的引用不明确

【问题讨论】:

  • 您能否添加您的视图控制器重定向代码,以便我们了解。
  • 你是指.m文件吗?
  • 从哪里重定向'RoomServiceViewController'这个视图控制器?我要显示的代码

标签: ios objective-c xcode uipageviewcontroller


【解决方案1】:

由于您标记了 UIPageViewController 并且 XCode 是您的类型与 UIPageViewControllerDelegate 混淆:您在某处是否有一个 UIPageViewController 也引用了您的协议​​?

如果是: Objective-C 类型在您的项目中不会自动知道。你需要包含他们的头文件。否则你会得到有趣的最佳猜测。

另一种选择。将协议移动到单独的头文件中,看看是否可以解决问题。

此外,如果您使用 include 而不是 import,最终会出现奇怪的编译器错误。

【讨论】:

  • 我不明白为什么会出现这些错误,一切正常,不同的是我的新电脑,问题出在 MapViewControllerDelegate 协议上,我对这个协议的所有 .h 文件都有问题在他们里面
  • 将协议移动到一个单独的头文件怎么样?您使用的是#import 还是#include?​​span>
  • 没有项目就没有机会说出来。控制器被显示和关闭。控制器内的关闭函数上的断点怎么样。检查解雇的来源。
  • 我拿到协议并在一个新的头文件中声明它,然后我从其他文件中删除协议声明,它对我有用,谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-09-20
  • 1970-01-01
  • 2021-01-07
  • 2013-06-30
  • 2015-05-28
相关资源
最近更新 更多