8

アプリケーション内で iPhone の Mail.app を使用できるようにして、ユーザーがアプリケーションを離れることなく共有メールを送信できるようにしたいと考えています。私は3.0がこれを可能にしたことを知っています。

フレームワークフォルダーをctrlクリックしてフレームワークを適切に追加しました->既存のフレームワークを追加します。

これを、Mail.app を表示するビューコントローラーのヘッダー ファイルに追加しました。

#import <MessageUI/MessageUI.h>

UIAlert をポップアップし、閉じるときに以下の関数を呼び出します。コードにエラーは表示されません。Interface Builder 内で何か特別なことをする必要がありますか? エラーメッセージは以下

-(void)showEmailModalView {

    MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
    picker.mailComposeDelegate = self; // <- very important step if you want feedbacks on what the user did with your email sheet
    NSString * emailSubject = [[NSString alloc] initWithFormat:@"iPhone Subject Test"];
    [picker setSubject:emailSubject];


    NSString * content = [[NSString alloc] initWithFormat:@"iPhone Email Content"];

    // Fill out the email body text
    NSString *pageLink = @"http://mugunthkumar.com/mygreatapp"; // replace it with yours
    NSString *iTunesLink = @"http://link-to-mygreatapp"; // replate it with yours
    NSString *emailBody =
    [NSString stringWithFormat:@"%@\n\n<h3>Sent from <a href = '%@'>MyGreatApp</a> on iPhone. <a href = '%@'>Download</a> yours from AppStore now!</h3>", content, pageLink, iTunesLink];

    [picker setMessageBody:emailBody isHTML:YES]; // depends. Mostly YES, unless you want to send it as plain text (boring)

    picker.navigationBar.barStyle = UIBarStyleBlack; // choose your style, unfortunately, Translucent colors behave quirky.

    [self presentModalViewController:picker animated:YES];
    [picker release];
    [content release];
    [emailSubject release];


}

- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error
{
    [self dismissModalViewControllerAnimated:YES];
}

私のエラーメッセージ:

 ld: framework not found Message
 collect2: ld returned 1 exit status

このチュートリアルに従いました: http://blog.mugunthkumar.com/coding/iphone-tutorial-in-app-email/

4

2 に答える 2

18

いくつかの調査を行った後、使用していたチュートリアルが完全に問題ないことがわかりました! コードにエラーはなく、私の問題は MessageUI フレームワークをプロジェクトに追加する方法でした。

間違った道。 フレームワーク フォルダーを Ctrl キーを押しながらクリックし、[追加] -> [既存のフレームワーク] を選択します。

正しい方法。 xcode 画面の左側にあるファイル パネルで「ターゲット」を開き、プロジェクト名をダブルクリックします。新しいウィンドウが開きます。新しいウィンドウの下部で、新しいリンクされたライブラリを追加できます。左下隅にある小さなプラス記号をクリックしてライブラリを追加します。下にスクロールして MessageUI を表示し、[追加] を選択します。

MessageUI フレームワークを間違った方法で既に追加している場合は、単純にそれを削除して、正しい方法で続行してください。それでもうまくいかない場合は、xcode をシャットダウンし、再起動して、アプリケーションを再構築してみてください。

何時間も答えを探した後、これが私にとってうまくいきました。

于 2009-09-04T03:30:49.860 に答える
0

リンカーのコマンド ライン出力は、フレームワークのインクルード パスや、リンカーがビルドに含めるフレームワークなど、XCode がバイナリのビルドに使用するものについて多くのことを示します。そこから、XCode が使用しているものと、設定に欠けている可能性のあるものを正確に確認できます。コマンド ライン出力は、[ビルド結果] ウィンドウの出力ペインの 1 つにあります。

于 2009-09-04T03:27:37.540 に答える