【发布时间】:2018-05-04 00:10:34
【问题描述】:
我在我的应用程序中使用 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[...]
【问题讨论】:
-
通过从方法中删除
位修复了问题。 -
我遇到了同样的问题,而您只是为我节省了一些时间。谢谢!
标签: objective-c cocos2d-iphone