2014-01-12 1 views
-1

Я пытаюсь получить базовый образец работы электронной почты в приложении и получить ошибку компоновщика, которая, как представляется, связана с картой MessageUI. В моем файле .h у меня естьЧто это за ошибка компоновщика?

#import <UIKit/UIKit.h> 
#import <MessageUI/MessageUI.h> 

@interface ButtonViewController : UIViewController 
<MFMailComposeViewControllerDelegate> 
{ 
     MFMailComposeViewController *mailComposer; 
} 

и в моем .m файле Я использую этот объект mailComposer. Я выделяю init и устанавливаю его, без ошибок компилятора.

mailComposer =[[MFMailComposeViewController alloc] init]; 
mailComposer.mailComposeDelegate = self; 
[mailComposer setSubject:@"Test mail"]; 
[mailComposer setMessageBody:@"Testing Message Body" isHTML:NO]; 

[self presentViewController:mailComposer animated:YES completion:nil]; 

Но я получаю ошибки компоновщика. Я думаю, что мне не хватает чего-то, что мне нужно сделать впереди.

Undefined symbols for architecture i386: 
"_OBJC_CLASS_$_MFMailComposeViewController", referenced from: 
    objc-class-ref in ButtonViewController.o 
ld: symbol(s) not found for architecture i386 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 
(null): "_OBJC_CLASS_$_MFMailComposeViewController", referenced from: 

(null): Objc-class-ref in ButtonViewController.o 

(null): Symbol(s) not found for architecture i386 

(null): Linker command failed with exit code 1 (use -v to see invocation) 

спасибо. Laurel

+1

@HussainShabbir Неа, это ложь. –

+0

@ HussainShabbir Вы, конечно же, не понимаете, какая разница между ошибкой компоновщика и ошибкой компилятора. –

+1

Замечание: Xcode 5 имеет функцию сборки «Автоматические схемы ссылок», которая (вместе с новой функцией «@module») позволяет избежать такой проблемы. –

ответ

4

Необходимо связать инфраструктуру MessageUI.
Зайдите в настройки проекта, выберите правильную цель -> Общие, прокрутите вниз до «связанных структур и библиотек» нажмите + и добавить MessageUI.framework

+0

Petro, вы ясно объяснили это и дали большие указания. Спасибо, что не заставляю меня чувствовать себя наркотиком! OH, и он тоже работал (по щелчку). LRS – LaurelS

+0

Добро пожаловать;) –

0

Я столкнулся Linker Error обычно при создании повторяющихся классов. (Обычно при использовании основных данных). Итак, просто зайдите в «Build Phases» -> «Compile Sources» и найдите дубликат классов (классы, используемые с ButtonViewController).

Если это не решает проблему, как вы импортировали MessageUI, #import <MessageUI/MessageUI.h>

Проверьте messageUI рамки добавляется в проект. если нет, добавьте его в проект. Очистите проект &, вы готовы к работе

+1

«Я столкнулся с ошибкой Linker Error при создании дубликатов классов» - не применяется, вам нужно ** прочитать ** сообщение об ошибке. У ОП нет ошибок «дублированного символа», у него есть «неопределенные ссылки», поэтому проблема в том, что у него отсутствует фреймворк. –

+0

Спасибо @ H2CO3 .. Все еще учатся. Вы потрясающий BTW :) –

2

Возможно, вы добавили MessageUI.framework и перенесли его в какую-либо другую папку в комплекте, не обновив путь для xcode. Xcode считает, что файл отсутствует, поскольку он отображается красным в project-> target-> ссылка двоичная с библиотеками на картинке ниже. Добавление MessageUI.framework в проект может решить проблему

See the red missing framework or it might not be there totally so add it again

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

  • Нет связанных вопросов^_^