iOSで都道府県のピッカーを作るためにCSVからデータを読み込む

2013年8月7日水曜日

t f B! P L
 AddressBook改造中の続き。都道府県のピッカーのデータ、47都道府県のデータをCSVから読み込みたいです。なぜCSVかというと、都道府県コードと都道府県名のCSVは、ネットを探すとすぐに拾えるからです。

 ファイルの読み込みなんてプログラミングの基礎ですが。
 リソースのCSVから読み込む、とか意外とサンプルコードがヒットしない(自分で考えろ)のです。
 都道府県のcsvファイルはそのままプロジェクトに突っ込んだら普通に文字化けしていたので、UTF-8にしてから再度。

    NSBundle *bundle = [NSBundle mainBundle];
    NSString *path = [bundle pathForResource:@"prefectures" ofType:@"csv"];
    NSString *csv = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];

 ここらへんまでは良く見る見かける感じ。それぞれの意味はわかっていません。

    NSArray *lines = [csv componentsSeparatedByString:@"\n"];

 改行コードでちょん切るのですが、うまくいかない。csvの改行をLFにして再度。

    NSMutableArray*pary = [NSMutableArray array];
    for (NSString *line  in lines) {
        NSArray *components = [line componentsSeparatedByString:@","];
        if ([components count] > 1) {
            [pary addObject:[components objectAtIndex:1]];
        }
    }

 一行毎に今度はカンマでちょん切る。csvは2個目が都道府県名なので、2個目をとりだして配列にいれていきます(そもそも都道府県名しか使わないなら、それしかないただのファイルで良いのですが、csvファイルを読み込むのをやってみたかったので)

 パフォーマンスわからないし、もしかしたら便利なライブラリとかありそうですが。

 この処理は1回やればいいので、AppDelegateでするようにしました。いや、その機能がはじめて動く時に1回が本当? 練習用なので適当です。

このブログを検索

QooQ