#defineでNSArrayやNSDictionayを定義
iPhoneアプリ「めざまし天気」を申請中でして。
その中で使ったちょっとしたTipsを書いておきます。
値を静的に定義しますよね。
#defineでこんな書き方できますというのを。
まずNSArray。
//まず地域を定義 #define AREA_HOKIDO @"北海道" #define AREA_TOHOKU @"東北" #define AREA_KANKOU @"関東・甲信" #define AREA_HOKRIK @"北陸" #define AREA_TOHKAI @"東海" #define AREA_KINNKI @"近畿" #define AREA_CHUGOK @"中国" #define AREA_SHIKOK @"四国" #define AREA_KYUSHU @"九州" #define AREA_OKINAW @"沖縄" //定義済みの地域をNSArrayで定義 #define AREA_ARAY @[AREANM_HOKIDO, AREANM_TOHOKU, AREANM_KANKOU, AREANM_HOKRIK, AREANM_TOHKAI, AREANM_KINNKI, AREANM_CHUGOK, AREANM_SHIKOK, AREANM_KYUSHU, AREANM_OKINAW] //長くてヤダって時は改行文字「\」(Alt+¥)入れるとスッキリ。 #define AREA_ARAY @[\ AREANM_HOKIDO \ , AREANM_TOHOKU \ , AREANM_KANKOU \ , AREANM_HOKRIK \ , AREANM_TOHKAI \ , AREANM_KINNKI \ , AREANM_CHUGOK \ , AREANM_SHIKOK \ , AREANM_KYUSHU \ , AREANM_OKINAW \ ]
これで定義値を取得。
//取得 NSString *area = AREA_ARAY[0];
次ぎはNSDictionary。
//曜日を定義 #define WEEKDAY_SUNDAY @"日" #define WEEKDAY_MONDAY @"月" #define WEEKDAY_TUESDAY @"火" #define WEEKDAY_WEDNESDAY @"水" #define WEEKDAY_THURSDAY @"木" #define WEEKDAY_FRIDAY @"金" #define WEEKDAY_SATURDAY @"土" //定義済みの曜日をNSDictonaryで定義 key:曜日 #define WEEKDAY_DIC @{@"1":WEEKDAY_SUNDAY,@"2":WEEKDAY_MONDAY,@"3":WEEKDAY_TUESDAY,@"4":WEEKDAY_WEDNESDAY,@"5":WEEKDAY_THURSDAY,@"6":WEEKDAY_FRIDAY,@"7":WEEKDAY_SATURDAY} //長くてヤダって時は改行文字「\」(Alt+¥)入れるとスッキリ。 #define WEEKDAY_DIC @{ \ @"1":WEEKDAY_SUNDAY \ ,@"2":WEEKDAY_MONDAY \ ,@"3":WEEKDAY_TUESDAY \ ,@"4":WEEKDAY_WEDNESDAY \ ,@"5":WEEKDAY_THURSDAY \ ,@"6":WEEKDAY_FRIDAY \ ,@"7":WEEKDAY_SATURDAY \ }
これで定義値を取得。
//取得 NSString *weekDay = WEEKDAY_DIC[@"1"];
応用すれば、Dictionaryの中にArrayを入れて、DIC[@"key"][0]でArrayの中身取得もできますし。
まあ、あんまりやるとわけわからなくなるなるし、DBとか他のやり方が適切になるのでほどほどにしてます。
以上、カレーうどんを飛ばさずに食べる方法の紹介でした。