2

iOSの画像アセットからARGBピクセルを読み取ろうとしています。そのために、私はCGImageRefそれを取得するために使用できる必要がありCGDataProviderます。私の質問は、私がCGImageRef使用を作成する場合:

CGImageRef cg = [[UIImage imageNamed: Path] CGImage];

最終的に電話する必要がありますCGImageRelease(cg)か?電話をかけないとCGImageRelease、メモリリークが発生しますか?

CGImageRelease私が抱えているもう1つの問題は、同じファイルを2回読み取ると、空の画像が返されることです。これは、最初に電話をかけなかったことが原因である可能性があります。

4

2 に答える 2

7

、または(または、create、copy、retainを使用するそのような関連メソッド。例:-)CGImageReleaseを使用する場合にのみ呼び出す必要があります。この場合、作成、コピー、または保持を行っていないため、これを行う必要はありません。CGImageCreateCopyRetainCGBitmapContextCreateImage

于 2012-12-17T20:39:55.560 に答える
1

いいえ、CGImage は UIImage の有効期間にバインドされます

cocoa の「create ルール」に従います。所有しているものだけを解放する必要があります (new*、copy*、retain という名前のメソッドからのオブジェクトは所有権を返します)。

さらに、CF からのすべてのオブジェクトは、CF 作成規則に従います (Create*、Copy*、Retain という名前のメソッドからのオブジェクトのみ)。

于 2012-12-17T20:38:21.540 に答える