所以我有一个使用控制器类的objective-c项目。这通过IBOutlets与接口构建器连接。
我的理解是控制器通过加载用户界面来初始化(因为它作为对象添加到界面构建器中)。然后我想使用控制器的getter方法返回IBOutlet字段中的值。
所以,为了澄清我对某些代码的意思,这里是我的控制器接口/实现:
@interface controller : NSObject {
@private
IBOutlet NSTextField *name;
}
-(NSString*) name;
@end
然后,在我的实施中,我有:
-(NSString*) name
{
return [name stringValue];
}
在第三节课中,我希望能够写下:
NSString blahblah = [controller name] and have the value of blahblah assume the value of whatever is in the controller's IBOutlet "name" field.
希望这是有道理的。当我尝试这样做时,我得到“Semantic Issue:Method'+ name'not found(返回类型默认为'id')”
为什么呢?控制器对象在哪里实际得到证实?在哪里,以及如何访问它的字段?
答案 0 :(得分:2)
您必须使用[[controller alloc] initWithNibName:nibName bundle:nil]来实例化控制器;
只需使用[控制器名称]即可调用类方法。它也应该是NSString * blahblah