CSVファイルの読み込み(配列格納)

CSVからデータを読みだして配列に格納する方法。

    // CSVファイルからセクションデータを取得する
    NSString *csvFile = [[NSBundle mainBundle] pathForResource:@"CSVファイル名(拡張子なし)" ofType:@"csv"];
    NSData *csvData = [NSData dataWithContentsOfFile:csvFile];
    NSString *csv = [[NSString alloc] initWithData:csvData encoding:NSUTF8StringEncoding];
    NSScanner *scanner = [NSScanner scannerWithString:csv];
    
    // 改行文字の集合を取得
    NSCharacterSet *chSet = [NSCharacterSet newlineCharacterSet];
    // 一行ずつの読み込み
    NSString *line;
    arrDetail = [[NSMutableArray alloc] init];

    //タイトル行読み飛ばしフラグ。読み込む場合はtrueにする
    bool titleUse = false; 
    while (![scanner isAtEnd]) {
        // 一行読み込み
        [scanner scanUpToCharactersFromSet:chSet intoString:&line];
        if(titleUse){
            // カンマ「,」で区切る
            NSArray *array = [line componentsSeparatedByString:@","];
            // 配列に挿入する
            [arrDetail addObject:array];
        }
        // 改行文字をスキップ
        [scanner scanCharactersFromSet:chSet intoString:NULL];
        titleUse = true;
    }

 
 
参考にさせていただいたサイト様
 http://b.ruyaka.com/2010/10/17/iphoneアプリ開発-csvファイルデータ取得/

アプリ内からメールを送信

アプリ内からiPhone標準のメール機能を呼び出して、メールを送信する方法のまとめ。

『前準備』
・アプリにフレームワーク『MessageUI.framework』を追加
 

『メール機能を使用する.hで、フレームワークを呼び出す』

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

@interface DetailViewController : UITableViewController<MFMailComposeViewControllerDelegate>

 

『メール機能を使用する.m内に処理を構築』

- (void)sendMail
{
    Class mailClass = (NSClassFromString(@"MFMailComposeViewController"));
    if (mailClass != nil){
        //メールが送信できる状態か確認
        if ([mailClass canSendMail]){
            [self showComposerSheet];
        } else {
            [self showAlert:@"メールが起動出来ません":@"この機能は、メールの設定後にご使用下さい。"];
        }
    }
}

-(void) showComposerSheet {
	MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
	picker.mailComposeDelegate = self;
    
	[picker setSubject:@"メール件名"];
    
	NSString *emailBody = @"メール本文\nメール本文2";
	[picker setMessageBody:emailBody isHTML:NO];
    
	[self presentModalViewController:picker animated:YES];
}

- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error {
	switch (result){
		case MFMailComposeResultCancelled:
			//キャンセルした場合
			break;
		case MFMailComposeResultSaved:
			//保存した場合
			break;
		case MFMailComposeResultSent:
			//送信した場合
			break;
		case MFMailComposeResultFailed:
			[self showAlert:@"メール送信失敗":@"メールの送信に失敗しました。ネットワークの設定などを確認して下さい"];
			break;
		default:
			break;
	}
	[self dismissModalViewControllerAnimated:YES];
}

-(void)showAlert:(NSString*)alertMsgTitle:(NSString*)alertMsg{
    UIAlertView *alert = [[UIAlertView alloc] init];
    alert.title = alertMsgTitle;
    alert.message = alertMsg;
    [alert addButtonWithTitle:@"OK"];
    [alert show];
}

※showAlertは、オマケです。

上記を記述後、『sendMail』を好きなタイミングで呼び出せば、メール送信の画面がアプリ内に展開されます。

数値と文字列の変換

文字列を数値に、もしくはその逆で、数値を文字列にする方法のまとめ。

『文字列から数値に変換』

NSString *str = @"1.23456789";
int x = [str intValue];
float y = [str floatValue];
double z = [str doubleValue];

 
『数値から文字列に変換』
『整数』

int i = 100;
NSString *str = [NSString stringWithFormat:@"%d", i];

『小数』

double d = 1.2345;
NSString *str = [NSString stringWithFormat:@"%f", d];