macOS/iOS API解説

iOS , Mac アプリケーション開発のために使われる主要フレームワークの日本語情報です。2010年代に書かれた内容です。今後更新はありません。

目次

-cStringUsingEncoding:

INDEX>Foundation>NSString>

指定したエンコーディングのC文字列を返します
-(__strong const char *)cStringUsingEncoding:(NSStringEncoding)encoding

プログラマのための文字コード技術入門 (WEB+DB PRESS plus) (WEB+DB PRESS plusシリーズ)

プログラマのための文字コード技術入門 (WEB+DB PRESS plus) (WEB+DB PRESS plusシリーズ)

解説

指定したエンコーディングのC文字列を返します。
10.4以降はcStringを使わず、このメソッドを使います。
返り値のC文字列はレシーバが解放されると同時に解放されます。

変換できなかった場合にはNSCharacterConversionExceptionが起こされます。
canBeConvertedToEncoding:を使うと指定したエンコーディングで損失なしに変換できるかどうかのテストができます。

返り値

( __strong const char * )

C文字列

引数

( NSStringEncoding )encoding

エンコーディング



エンコーディング

クラス

NSString

Instance Methods

使用可能

10.4

参照

-getCString:
-canBeConvertedToEncoding:
+defaultCStringEncoding
-cStringLength
-getCharacters:
-UTF8String

関連記事


Cocoa: NSString を char 型の配列に変換する - Sarabande.jp


objective c - How to convert NSString to C string? - Stack Overflow


NSStringとC文字列(1): 永遠ログ


NSString cStringUsingEncoding ポインタ: みこさんちの開発日記

例文

#pragma mark cStringUsingEncoding:
-(id)method008
{
    const char *cPointer;
	NSString *str1 = [NSString stringWithString:@"string"];
    NSString *ret ;
    
	cPointer = [str1 cStringUsingEncoding:NSASCIIStringEncoding];
     
    if ([str1 canBeConvertedToEncoding:NSASCIIStringEncoding]){
        ret = [[NSString alloc] initWithCString:cPointer encoding:NSASCIIStringEncoding  ];
    }
    else{
        ret = [NSString stringWithString:@"string"];
    }
    
    return ret;    
}