CFDictionaryValueCallBacks сохранить / освободить? - PullRequest
1 голос
/ 19 июля 2010

Есть ли постоянный обратный вызов сохранения, который я могу использовать для общих id / NSObject с? Существует kCFTypeDictionaryValueCallBacks, но они только для «объектов, производных от CFType». Я не верю, что NSObjects являются типами CFT, поэтому я написал следующее:

const void *valueRetainCallBack(CFAllocatorRef allocator, const void *ptr)
{
    id o = (id)ptr;
    [o retain];

    return o;
}

void valueReleaseCallBack(CFAllocatorRef allocator, const void *ptr)
{
    id o = (id)ptr;
    [o release];
}

Но, может быть, есть более простой способ?

1 Ответ

3 голосов
/ 19 июля 2010

Существует ли постоянный обратный вызов сохранения, который я могу использовать для универсальных объектов id / NSObjects?Существует kCFTypeDictionaryValueCallBacks, но они только для «объектов, производных от CFType».Я не верю, что NSObjects являются типами CFT…

Они не задокументированы как полностью соединенные мостом, но для управления памятью (сохранение и освобождение), , который задокументирован для работы .На практике все функции, общие для CFType и NSObject, включая description / CFCopyDescription, также работают.

...