忍者ブログ

佐崎司と愉快な仲間達

ゲーム、アニメ、CG、iOS開発など思いついたことを記事にしています。 管理人が3人いますので、記事にまとまりはないと思います。 iPhoneアプリのレビュー依頼も受け付けています。

NSDataのdataWithBytesNoCopyやinitWithBytesNoCopyのfreeWhenDoneの意味

わか

NSDataのdataWithBytesNoCopyやinitWithBytesNoCopyメソッドのfreeWhenDoneについて記載します。dataWithBytesNoCopyやinitWithBytesNoCopyとは指定したデータ用メモリからNSDataを生成するメソッドです。メモリを再利用することができるので、無駄なコピーが発生せず効率的です。
ただ、使用する際にはメモリ解放処理を生成したNSDataに任せるか、指定したデータ用メモリに任せるかをきちんと決めておかないとエラーになるかもしれません。

引数にfreeWhenDoneが存在します。これを用いて解放処理を誰に任せるか設定できます。
・YES: 生成したNSDataが解放された際に、元のデータ用メモリを解放する
・NO:  生成したNSDataが解放されても、元のデータ用メモリを解放しない

また、引数にfreeWhenDoneを指定しない場合、「YES」が設定されていることになります。
備忘録でした。

拍手[0回]

PR