2014-01-02 2 views
3

Этот код:Не удается найти объявление протокола для 'MFMailComposeViewControllerDelegate'; Вы имели в виду «UIPageViewControllerDelegate»?

#import <UIKit/UIKit.h> 
#import <MapKit/MapKit.h> 
#import <MessageUI/MessageUI.h> 
#import "MessageComposerViewController.h" 
#import <MessageUI/MFMailComposeViewController.h> 

@interface MapViewController : UIViewController <MFMailComposeViewControllerDelegate> // Add the delegate 

- (IBAction)showEmail:(id)sender; 

{ 
    IBOutlet MKMapView *mapView; 
} 

@property (nonatomic, retain) MKMapView *mapView; 

@end 

Эта проблема или ошибка:

  • Не можете найти декларацию протокола для 'MFMailComposeViewControllerDelegate'; Вы имели в виду «UIPageViewControllerDelegate»? для этого lign: #import "MessageComposerViewController.h"

  • Ожидаемый идентификатор или '(' для этого lign: @interface MapViewController: UIViewController // Добавить делегат и это lign: {

Спасибо за заранее. :)

+0

@interface MapViewController: UIViewController он будет работать. –

+0

Теперь: Ожидаемый идентификатор или '(' для этого: { Сразу после "- (IBAction) showEmail: (id) отправитель;" – user2777252

+0

Ну, вы должны сначала объявить свои ivars, затем ваши свойства, а затем ваши методы. – dirkgroten

ответ

4

Попробуйте это,

#import <UIKit/UIKit.h> 
    #import <MapKit/MapKit.h> 
    #import <MessageUI/MessageUI.h> 
    #import "MessageComposerViewController.h" 
    #import <MessageUI/MFMailComposeViewController.h> 

    @interface MapViewController : UIViewController <MFMailComposeViewControllerDelegate,UINavigationControllerDelegate> { 
     IBOutlet MKMapView *mapView; 
    } 
    - (IBAction)showEmail:(id)sender; 
    @property (nonatomic, retain) MKMapView *mapView; 
    @end 
1

Если вы д o выше и все еще видите предупреждение в Xcode, попробуйте создать или создать & приложение. Иногда эти предупреждения задерживаются после того, как вы решили проблему и очищены циклом компиляции.

0

Сегодня я столкнулся с той же проблемой, кодирующей приложение для ios8. Первое, что я сделал, - это снова добавить фреймворк, но это не помогло. Проблема была в том, что я проигнорировал libAWDProtobufFacetimeiMessage - файл буфера протокола. Я не профессионал, чтобы догадаться, почему, но когда я добавил буфер и сам фрейм, сообщение об ошибке исчезло. Я разместил скриншот here. Надеюсь, мой ответ поможет любому, кто смотрит здесь в будущем.

+0

@roo Это не похоже на вопрос. –

+0

Справедливая точка - я удалил обзор – roo

Смежные вопросы