Ожидаемый метод для чтения элемента словаря, не найденного в объекте типа 'id <NSCopying>' - PullRequest
0 голосов
/ 04 мая 2018

Я использую Cocos2d-ObjC в своем приложении и недавно обновил Xcode до v9.3. Теперь у меня есть ошибка в "CCRendererBasicTypes.m", которая говорит

"Expected method to read dictionary element not found on object of type 'id<NSCopying>'"

Все остальное работает нормально. Это часть CCRendererBasicTypes

-(id)objectForKey:(id<NSCopying>)options
{
    CCBlendMode *blendMode = [self rawObjectForKey:options];
    if(blendMode) return blendMode;

    // Normalize the blending mode to use for the key.
    id src = (options[CCBlendFuncSrcColor] ?: @(GL_ONE));
    id dst = (options[CCBlendFuncDstColor] ?: @(GL_ZERO));
    id equation = (options[CCBlendEquationColor] ?: @(GL_FUNC_ADD));

    NSDictionary *normalized = @{
        CCBlendFuncSrcColor: src,
        CCBlendFuncDstColor: dst,
        CCBlendEquationColor: equation,

        // Assume they meant non-separate blending if they didn't fill in the keys.
        CCBlendFuncSrcAlpha: (options[CCBlendFuncSrcAlpha] ?: src),
        CCBlendFuncDstAlpha: (options[CCBlendFuncDstAlpha] ?: dst),
        CCBlendEquationAlpha: (options[CCBlendEquationAlpha] ?: equation),
    };

    // Create the key using the normalized blending mode.
    blendMode = [super objectForKey:normalized];

    // Make an alias for the unnormalized version
    [self makeAlias:options forKey:normalized];

    return blendMode;
}

Ошибка появляется в каждой строке с

options[...]

1 Ответ

0 голосов
/ 19 декабря 2018

Измените первую строку на

-(id)objectForKey:(NSDictionary*)options
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...