iOS 6.0中的MessageUI问题

3

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

在我的项目中,我有一个带有IBAction的按钮用于发送短信消息而不离开我的应用程序(MessageUI链接到该项目)。在iOS 5中,代码运行良好,但是当我在最新的Xcode中打开相同的项目以重新编译它以适用于iOS 6时,我收到了警告:http://uaimage.com/image/10e31752 在iOS 6中使用MessageUI是否有所改变?

感谢您的关注!


自从我将iPhone 4更新到IO6以来,我也遇到了同样的问题。虽然没有警告,但似乎是由于线程模型的改变引起的。 - DevNull
我们能看到接口声明吗? - Daij-Djan
当然可以!http://uaimage.com/image/e71f051f 协议声明被注释掉了,因为出现了警告。 - Olex
3个回答

3

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> {}
...

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

错误如下:

  • 找不到'MFMessageComposeViewControllerDelegate'协议声明

和/或

  • 找不到'MFMailComposeViewControllerDelegate'协议声明。

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

最后,解决方案非常愚蠢!我通过将嵌套文件夹向上移动一个级别来解决这个问题。一切都可以很好地编译!

显然,库的导入(当您将它们添加到项目中时)无法到达子组中的文件!我想这是XCode和iOS 6的一个错误,但我一直在遇到相同的错误。

由于组是虚拟文件夹(它们不在文件系统中),所以这真的很奇怪。

我希望能为某人节省时间和头疼!


非常感谢您的评论,希望它也能帮助到其他人! - Olex

0
MFMessageComposeViewControllerDelegate添加到您的头文件(.h)中。
例如:UIViewController< MFMessageComposeViewControllerDelegate>

我的ViewController符合MFMessageComposeViewController,而且MessageUI已添加到项目文件夹中。在iOS 5中,使用相同的代码一切都运行良好。 - Olex

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接