CFDictionary возвращает ноль - PullRequest
1 голос
/ 15 июля 2011

Я пытаюсь использовать Базовую Основу впервые, и я должен что-то упустить. Я пытаюсь использовать NSObjects в качестве моих ключей и значений для CFMutableDictionaryRef.

У меня есть следующее тестовое приложение:

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
    NSString* key = @"testKey";
    NSObject* item = [[NSObject alloc] init];

    const CFDictionaryKeyCallBacks keyCB = kCFTypeDictionaryKeyCallBacks;
    const CFDictionaryValueCallBacks valCB = kCFTypeDictionaryValueCallBacks;

    CFMutableDictionaryRef dict = CFDictionaryCreateMutable(NULL, 0, &keyCB, &valCB);
    CFDictionaryAddValue(dict, item, key);
    NSLog(@"[CH] added = %@", CFDictionaryGetValue(dict, key));
    NSLog(@"[CH] size = %ld", CFDictionaryGetCount(dict));


}

Выход:

2011-07-14 16: 47: 40.568 Основание TestCore [61343: 903] [CH] добавлено = (null) 2011-07-14 16: 47: 40.578 TestCoreFoundation [61343: 903] размер [CH] = 1

1 Ответ

3 голосов
/ 15 июля 2011

У вас есть вызов CFDictionaryAddValue в обратном направлении. Это dict, key, а затем value:

CFDictionaryAddValue(dict, key, item);

Кроме того, выглядит хорошо.

Надеюсь, это поможет.

...