まず、ARCを使用しています。
たとえば、次のようなクラスがあるとします。
static CFNumberRef numberRef = NULL;
+ (void)initialize {
float myFloat = 28.37202;
numberRef = CFNumberCreate(kCFAllocatorDefault, CFNumberFloatType, &myFloat);
}
をリリースするにはどうすればよいnumberRef
ですか?
まず、ARCを使用しています。
たとえば、次のようなクラスがあるとします。
static CFNumberRef numberRef = NULL;
+ (void)initialize {
float myFloat = 28.37202;
numberRef = CFNumberCreate(kCFAllocatorDefault, CFNumberFloatType, &myFloat);
}
をリリースするにはどうすればよいnumberRef
ですか?
すべてのcoreFoundationはデフォルトでassign
-edであるため、保持されることはなく、リリースする必要はありません。
明確にするために、ARCはCoreFoundationオブジェクトには何の影響も及ぼしません。それらを自動的に管理しようとはしないため、手動で管理する必要があります。
によって独自のメモリを作成する場合は、それらを作成calloc/malloc
する必要がありfree
ます。
編集 :
Q:これを明確に理解したいのですが... ARCを使用している場合でも、CFRelease()や、CGContextRelease(context)などの他のタイプのリリースについても心配する必要があります。
回答:正解です。ARCはObjCオブジェクトのみを処理します。CoreFoundationオブジェクトについては何も知りません。