質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

Xcode 7

Xcode 7は、ソフトウェア開発のためのアップルの統合開発環境であるXcodeのバージョン。UIを作成するために用いるグラフィカルツールです。iOS9/OS X El Capitan/watchOS2に対応。Swift 2コンパイラーが搭載されています。

Q&A

解決済

1回答

2296閲覧

メールの添付ファイル名について

northpotato

総合スコア38

Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

Xcode 7

Xcode 7は、ソフトウェア開発のためのアップルの統合開発環境であるXcodeのバージョン。UIを作成するために用いるグラフィカルツールです。iOS9/OS X El Capitan/watchOS2に対応。Swift 2コンパイラーが搭載されています。

0グッド

1クリップ

投稿2015/09/26 08:19

iOS9, xcode7, Objective C の初心者です。
iPod touch の加速度センサーを使って得た
デバイスの傾斜角を csvファイルにして
自分宛にメールするプログラムを作成中です。

下記ソフトにて、→1 の部分はうまく機能していたのですが
ファイル名が同じだと、後の処理に支障を来すため
ファイル名を 日付と時間 yyyy_MM_dd-HH_mm_ss.csv とするため
→2 のようにしたところ、
イメージ説明
のようなエラーメッセージが出てしまい、メールも送られていませんでした。

この意味がよくわからないのですが、どなたかご教示頂けましたら
幸いです。 ( .csv の拡張子の付け方も)

宜しくお願い致します。

  • (IBAction)buttn_mail:(id)sender {
    // メール設定が行われているか確認

// if ( [MFMailComposeViewController canSendMail] == YES )
// {
// メール設定が行われている場合
// メールビュー生成
MFMailComposeViewController* picker = [[MFMailComposeViewController alloc] init];
picker.mailComposeDelegate = self;
// }

char *value_chr; value_chr = (char *)malloc(1000); for (int i=0; i <=jcount_m; i++) { sprintf(value_chr, "%4.1f", angle_ar[i]); strcat(csvData, value_chr); strcat(csvData, ","); } // 取得したNSStringをNSdataに変換 NSString* str = [NSString stringWithCString: csvData encoding:NSUTF8StringEncoding]; NSData* data = [str dataUsingEncoding:NSUTF8StringEncoding]; NSDate *dt =[NSDate date]; NSDateFormatter *fmt = [[NSDateFormatter alloc] init]; fmt.dateFormat = @"yyyy_MM_dd-HH_mm_ss"; NSString *str2 = [fmt stringFromDate:dt]; NSData* data2 = [str2 dataUsingEncoding:NSUTF8StringEncoding]; // mimeTypeはtext/csv

// → 1 [picker addAttachmentData:data mimeType:@"text/csv" fileName:@"export.csv"];

// → 2 [picker addAttachmentData:data mimeType:@"text/csv" fileName:data2];

[picker setSubject:@"data_ mail" ]; // 件名 [picker setToRecipients:[ NSArray arrayWithObject:@"xxx@xxxxxxxx" ] ]; // 宛先 [picker setMessageBody:@"incl_data" isHTML:NO ]; // 本文 // メールビュー表示 [self presentViewController:picker animated:YES completion:nil]; }

//メール送信完了時に呼ばれる(6)

  • (void)mailComposeController:(MFMailComposeViewController*)picker
    didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error {
    // if (error!=nil) [self showAlert:@"" text:@"メール送信失敗しました"];

    //オープン中のビューコントローラを閉じる
    // モーダルビューを消す
    [self dismissViewControllerAnimated:YES completion:nil];
    }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

fileNameパラメータはNSStringなので、そのままfileName:str2と指定すればいいんじゃないでしょうか?

投稿2015/09/26 08:24

TakeOne

総合スコア6299

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

northpotato

2015/09/26 08:51

とても迅速なご回答、ありがとうございます。 あまりの早さにびっくりしました。 おっしゃるように NSDate *dt =[NSDate date]; NSDateFormatter *fmt = [[NSDateFormatter alloc] init]; fmt.dateFormat = @"yyyy_MM_dd-HH_mm_ss.csv"; NSString *str2 = [fmt stringFromDate:dt]; // NSData* data2 = [str2 dataUsingEncoding:NSUTF8StringEncoding]; // mimeTypeはtext/csv // [picker addAttachmentData:data mimeType:@"text/csv" fileName:@"export.csv"]; [picker addAttachmentData:data mimeType:@"text/csv" fileName:str2]; としましたところ、添付メールも送られてきました。 ただ、私の訂正の仕方が悪かったのだと思うのですが、 ファイル名が 2015_09_26-17_28_00.70JST となってしまいました。 日本時間の取り方に修正するつもりですが、 .csv を拡張子としてつけるには、どのようにしたらよいでしょうか。 重ねて、ご教示頂けましたら幸いです。 宜しくお願い致します。
TakeOne

2015/09/26 11:41

> fmt.dateFormat = @"yyyy_MM_dd-HH_mm_ss.csv"; は、日付フォーマットの指定であり、cは曜日番号、sは秒、vはタイムゾーンを表示する意味になります。で、「.csv」という文字をそのまま書きたかったら、書きたい文字をシングルクォーテーション文字(')で囲めばよいというルールになっています なので、 fmt.dateFormat = @"yyyy_MM_dd-HH_mm_ss'.csv'"; と指定すればいいです。 日付フォーマットの指定方法については、以下を参照してください。 http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns
northpotato

2015/09/27 04:19

回答、ありがとうございました。 お陰様で、希望通りのファイル名にすることができました。 本当に、助かりました。 今後とも、宜しくお願い致します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問