2010年9月7日火曜日

Day 3 OpenURL openMaps: メソッド詳細(2)

元の実装では、決め打ちで住所を指定していた(米国appleの住所、アルファベットと数字)。コレを日本語で指定したい(日本apple本社の住所)場合はstringWithCString:encoding: メソッドを使用する。
stringWithCString:encoding:
Returns a string containing the bytes in a given C array, interpreted according to a given encoding.

C言語の文字列からNSStringを返すメソッド。文字列は「" "」で囲む。エンコーディングの引数は「NSUTF8StringEncoding」を指定する。
日本語住所を指定する場合のソースは以下のようになる。
-(void)openMaps:(id)sender{
 NSString* addressText =[NSString stringWithCString:"東京都新宿区西新宿3-20-2" encoding:NSUTF8StringEncoding]; 

 addressText = [addressText stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
 
 NSString* urlText = [NSString stringWithFormat:@"http://maps.google.com/maps?q=%@",addressText];
 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlText]];
}