只是想知道是否有任何方法可以将类方法(即 +(void)mymethod )与该类的实例一起使用?
也可以在我的类方法中访问实例变量吗?
不,您不能使用实例调用静态方法。静态方法只能使用类名调用。
您不能从静态方法访问实例变量。只能访问静态变量。
有什么方法可以将类方法(即 +(void)mymethod )与该类的实例一起使用?
你当然可以。该类只不过是一个您可以从实例中检索的对象,因此请继续执行此操作。
[[myInstance class] myClassMethod]
是否可以在我的类方法中访问实例变量?
不,而且原因很明显:这没有任何意义。
您在一个类方法中,您希望引用哪个实例?最后一个创建?第一个?据您所知,甚至可能没有分配实例。让我们尝试一个例子
这是一个类声明(只要接口就足够了)
@interface FancyClass : NSObject
@property NSString *name;
+ (void)myFancyClassMethod;
@end
现在让我们声明几个实例
FancyClass *fancy1 = [FancyClass new];
fancy1.name = @"Hi I'm Fancy 1";
FancyClass *fancy2 = [FancyClass new];
fancy2.name = @"Hi I'm Fancy 2";
现在,如果您假设可以从myFancyClassMethod
的实现中访问实例变量,您希望读取什么值name
?你看到废话了吗?
实例 var 属于一个实例。现在,如果您可以在类方法中访问实例 var,那么在所有浮动的实例中,该实例 var 属于哪个实例?