2012年12月11日火曜日

Objective-Cでの文字列系オブジェクト変換

Objective-Cでの文字列系オブジェクト変換。
X-BASIC for iOSの開発中にいろいろ出てきたのでまとめておく。

NSString*からchar*への変換
    NSString* str = @"AAA";
    char* cp = [str UTF8String];


char*からNSString*への変換
 char* cp = "AAA";
 NSString* str = [NSString stringWithCString: cp encoding:NSUTF8StringEncoding];

NSStringからCFStringRefに変換
 CFStringRef aCFString = (CFStringRef)aNSString;

CFStringRefからNSStringに変換
 NSString *aNSString = (NSString *)aCFString;

Cでの記述部分とObjective-Cでの記述をリンクするときにはこのあたりの変換が必須となる。

追記:
stringWithFormat@"%s"ではCの文字列("〜")を受けられるが、
UTF8には対応していないので、ASCIIでない文字は化ける。
UTF8対応するにはstringWithCString:encoding:が必要となる。

0 件のコメント:

コメントを投稿