我试图创建一个静态的NSMutableDictionary这样静态的NSMutableDictionary只能存储一个对象
static NSMutableDictionary* Textures;
+(Texture*) loadTexture: (NSString*) name path: (NSString*) path{
CGImageRef imageReference = [[UIImage imageNamed:path] CGImage];
GLKTextureInfo* textureInfo = [GLKTextureLoader textureWithCGImage:imageReference options:nil error:NULL];
Texture* texture = [[Texture alloc] init:textureInfo];
if(!Textures) Textures = [[NSMutableDictionary alloc] init];
[Textures setObject:texture forKey:name];
return texture;
}
看来我只能一个对象添加到字典中,但我相信我把每一个时间,所以创建一个新的护理我被困在为什么看来我只能在这本字典中存储一个对象。此外,它添加了第一个,并且未能添加任何后续调用。
可能不是主要问题,但这不是线程安全的。是否有一个原因,你使用'纹理'的延迟初始化,而不是在加载类时急切地实例化呢? – Alexander
我从来没有初始化类,它只是一个静态方法,当我添加另一个纹理时,我只是再次调用该方法 –
什么表示只能添加一个对象?后续尝试失败的原因是什么? –