macOS/iOS API解説

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

目次

initWithCharactersNoCopy:length:freeWhenDone:

INDEX>Foundation>NSString>

NSStringを初期化して返します
-(id)initWithCharactersNoCopy:(unichar *)characters
            length:(NSUInteger)length
            freeWhenDone:(BOOL)flag

解説

NSStringを初期化して返します。
値をコピーせず、unicharの内容を直接参照します。
flagがYESであれば、NSStringの開放時にunicharも開放します。

返り値

( id )

文字列(NSStringまたはそのサブクラス)

引数

( unichar * )characters

文字列のポインタ

( NSUInteger )length

文字長

( BOOL )flag

必要なくなったときメモリを解放するかYES/NO

クラス

NSString

使用可能

10.0
2.0

例文

#pragma mark initWithCharactersNoCopy:length:freeWhenDone:
-(NSString *)method018
{
    //
    NSString *string = [NSString stringWithString:@"string"];
    unichar* buffer = (unichar*)malloc([string length]);
    for (int i = 0; i < [string length]; ++ i)
    {
        unichar chr = [string characterAtIndex:i];
        buffer[i] = chr;
    }
    
    buffer[2] = 0x8723;
    
    NSString *str1 = [[NSString alloc] initWithCharactersNoCopy:buffer length:[string length] freeWhenDone:NO];
    
    return str1;
    //->test018 st&#34595;ing
}

編集時のバージョン

OS X 10.8
iOS 6.1