3

Xcode 和 obj-c 中的初学者问题。

在我的项目中,我有一个带有 IBAction 的按钮,可以在不使用我的应用程序的情况下发送短信(MessageUI 链接到项目)。在 iOS 5 代码运行良好,但是当我在最新的 Xcode 中打开相同的项目为 iOS 6 重新编译它时,我收到警告:http : //uaimage.com/image/10e31752 在 iOS 6 中使用 MessageUI 有什么改变吗?

感谢您的关注!

4

3 回答 3

3

看这张图:

http://uaimage.com/image/e71f051f

您必须使用 MFMessageComposeViewControllerDelegate 而不是MFMailComposeViewControllerDelegate

于 2012-11-11T21:24:08.507 回答
1

嗯……刚刚发生了一件非常奇怪的事情。

我的项目结构如下:

YourProject (Root of the project with Xcode Project Icon)
    /YourProject (Folder)
        /Group X (Nested Folder)
            /SomeViewController.h
        /Group Y (Nested Folder)
            /Group Y1 (Nested Folder)
                /OtherViewController.h
            /Group Y2 (Another Nested Folder)
                /YetAnotherViewController.h

SomeViewController 类,使用 MFMessageComposeViewControllerDelegate 和 MFMailComposeViewControllerDelegate 工作正常:

...
@interface SomeViewController : UIViewController <MFMessageComposeViewControllerDelegate, MFMailComposeViewControllerDelegate> {}
...

OtherViewController 和 YetAnotherViewController 类,使用相同的 MFMessageComposeViewControllerDelegate 和 MFMailComposeViewControllerDelegate 将无法编译!

错误是:

  • 找不到“MFMessageComposeViewControllerDelegate”的协议声明

和/或

  • 找不到“MFMailComposeViewControllerDelegate”的协议声明。

所以我检查并重新检查导入,声明所有方法和我的 ViewControllers 是相同的,唯一不同的是它们的数据对象名称。

最后解决方案真的很傻!我通过将嵌套文件夹向上移动一级解决了这个烦恼。一切都编译得很好!

显然,库的导入(当您将它们添加到项目中时)不会到达子组中的文件!我猜这是 XCode 和 iOS 6 的错误,但我遇到了同样的错误。

由于组是虚拟文件夹(它们不在文件系统中),只是在项目结构中,这真的很奇怪。

我希望节省时间和头痛的人!

于 2012-12-04T20:22:14.520 回答
0

添加MFMessageComposeViewControllerDelegate到您的 Header(.h) 文件中。

例子:UIViewController< MFMessageComposeViewControllerDelegate>

于 2012-10-28T18:19:29.757 回答