我曾尝试谷歌这一点,但实际上没有发现任何东西。从强的Smalltalk背景的人,我想下面的就可以了:从一个方法返回一个关于Objective-C类的引用的语法?
#import "ValveTargetState.h"
- (id) targetStateClass {
return ValveTargetState;
}
- (void) targetIsActive:(BOOL)isActive {
self.targetState = [[[self targetStateClass] alloc] initValve: self isActive: isActive];
[self.targetState push];
}
基本上,我添加了一个方法,让子类可以调整使用什么targetStateClass
。这是我的理解,就像Smalltalk一样,类也是ObjC中的对象。但是Xcode中告诉我
Unexpected interface name 'ValveTargetState': expected expression
(为return ValveTargetState;
表达)
我想我失去了一些东西很明显,但它是什么?
您没有返回实例... –
不是类实例吗?您可以发送消息给他们... –
targetStateClass的返回值应该是Class,而不是id。 – rmaddy