お世話になります。プログラミング初心者ですがよろしくお願いします。
現在swiftを使ってアプリを作っています。
アプリの内容は
1.firstViewでTextFieldに入力した値を空の配列に保存する
2.SecondViewで保存されたデータを読み出しTableViewでリスト表示させる
3.SecondViewにあるボタンを押すとメールが起動し、保存された内容がCSVに変換され添付される
というものです。保存にはNSUserDefaultsを使っています。
動作的には問題ないのですが、2でセルに変更があった場合にその内容が正しくCSVに反映されず、困っています。
最初に1の画面で[123,456,789]と保存をし、メールを送信。
2でリスト表示された中から[456]のデータを削除する。もう一度メール送信。
すると、3で送信されるCSVに[123,456,789][123,789]というデータが残ってしまう、という状態です。
途中まで同じ動作をしたとして、
3で送信されるCSVには[123,789]のデータだけが残っている。
という状態になると理想的です。
とりあえずの形ですが、今はこのように記述してあります。
func onClickMailButton() { if MFMailComposeViewController.canSendMail() == false { print("Email Send Failed") return } csvData += ([item]) //itemはNSUserDefaultsから読み出したデータ sendMailWithCSV("メール件名", message: "メール本文", csv: csvData) }
いらないデータまでCSVに入ってしまうのは、メール起動ボタンを押す度itemがcsvDataに追加されてしまうからということには気付きました。
メール起動ボタンを押した際に常に新しいデータを添付するにはどうしたらいいのでしょうか?
①「csvDataが空であるか」を確認し、空でない場合は一旦中身を削除してからitemを添付する
②csvDataの内容をitemで上書きし、添付する
のどちらかができると上手くいく気がするのですが、CSVに関するネットの記事は読み出しについての話が多く、上手く探すことができませんでした。
メール起動時に毎回データの内容をチェックして更新するというのは難しいことなのでしょうか?
伝わりにくい文章になってしまい大変恐縮ですが、どうかお知恵をお貸しください。
よろしくお願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/04/01 09:05