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 件のコメント:
コメントを投稿