0

まず、ARCを使用しています。

たとえば、次のようなクラスがあるとします。

static CFNumberRef numberRef = NULL;

+ (void)initialize {
    float myFloat = 28.37202;
    numberRef = CFNumberCreate(kCFAllocatorDefault, CFNumberFloatType, &myFloat);
}

をリリースするにはどうすればよいnumberRefですか?

4

3 に答える 3

0

すべてのcoreFoundationはデフォルトでassign-edであるため、保持されることはなく、リリースする必要はありません。

明確にするために、ARCはCoreFoundationオブジェクトには何の影響も及ぼしません。それらを自動的に管理しようとはしないため、手動で管理する必要があります。

によって独自のメモリを作成する場合は、それらを作成calloc/mallocする必要がありfreeます。

編集 :

Q:これを明確に理解したいのですが... ARCを使用している場合でも、CFRelease()や、CGContextRelease(context)などの他のタイプのリリースについても心配する必要があります。

回答:正解です。ARCはObjCオブジェクトのみを処理します。CoreFoundationオブジェクトについては何も知りません。

于 2012-12-24T14:23:16.060 に答える