A类有一个UIImage。不正确的使用静态变量?
B类有一个静态引用类类型A的B类被实例化
之前,我想调用类B中的静态方法来分配类A的一个实例
+ (void)setClassAReference:(ClassA*)classA
{
classA_ = classA;
}
这可能吗?
在我深入研究当前的项目之前,我创建了一个示例,并能够设置一个整数值,然后使用它实例化B,并保留存储值并允许访问它。
然而,在我的当前项目,XCode的拒绝让我传递一个整数值:
非静态方法的类A:B类实例化
- (UIImage*)imageWithIdentifier:(ImageIdentifier)identifier; // identifier is enum type
后,我试着在A中调用方法:
UIImage *img = [classA_ imageWithIdentifier:ImageIdentifier_Foo];
但是我得到一个隐含的转换警告。自动完成显示(id)而不是(ImageIdentifier)。我已经三重检查了我所有的方法签名,它们都使用枚举类型。
我是不是正确使用静态变量还是存在另一个问题?我意识到我可以使用一个单身人士,但我不希望如果可能的话。
我在这里将枚举声明:*更改为保护无辜
typedef enum
{
ImageIdentifier_Foo = 0,
ImageIdentifier_Bar
} ImageIdentifier;
*真实姓名。
为什么_class_'B'在创建'B'的_instance_之前需要引用_instance_的'A'?每个“B”的实例都会有'A'的_same_实例。 – 2012-02-11 20:15:52
'A'包含几个'B'子类使用的不同图像。我想让这些类可以重用,所以每个应用程序可能有不同的图像名称。我想避免让每个子类在每次创建时都发送相同的图像名称,只需使用静态方法发送一次即可。 – TigerCoding 2012-02-11 20:19:58