Xcode 和 obj-c 中的初学者问题。
在我的项目中,我有一个带有 IBAction 的按钮,可以在不使用我的应用程序的情况下发送短信(MessageUI 链接到项目)。在 iOS 5 代码运行良好,但是当我在最新的 Xcode 中打开相同的项目为 iOS 6 重新编译它时,我收到警告:http : //uaimage.com/image/10e31752 在 iOS 6 中使用 MessageUI 有什么改变吗?
感谢您的关注!
Xcode 和 obj-c 中的初学者问题。
在我的项目中,我有一个带有 IBAction 的按钮,可以在不使用我的应用程序的情况下发送短信(MessageUI 链接到项目)。在 iOS 5 代码运行良好,但是当我在最新的 Xcode 中打开相同的项目为 iOS 6 重新编译它时,我收到警告:http : //uaimage.com/image/10e31752 在 iOS 6 中使用 MessageUI 有什么改变吗?
感谢您的关注!
看这张图:
http://uaimage.com/image/e71f051f
您必须使用 MFMessageComposeViewControllerDelegate 而不是MFMailComposeViewControllerDelegate
嗯……刚刚发生了一件非常奇怪的事情。
我的项目结构如下:
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 将无法编译!
错误是:
和/或
所以我检查并重新检查导入,声明所有方法和我的 ViewControllers 是相同的,唯一不同的是它们的数据对象名称。
最后解决方案真的很傻!我通过将嵌套文件夹向上移动一级解决了这个烦恼。一切都编译得很好!
显然,库的导入(当您将它们添加到项目中时)不会到达子组中的文件!我猜这是 XCode 和 iOS 6 的错误,但我遇到了同样的错误。
由于组是虚拟文件夹(它们不在文件系统中),只是在项目结构中,这真的很奇怪。
我希望节省时间和头痛的人!
添加MFMessageComposeViewControllerDelegate
到您的 Header(.h) 文件中。
例子:UIViewController< MFMessageComposeViewControllerDelegate>