我知道这很简单,这就是为什么我一直在试图自己想出来,但我在我的绳索结束。可可:从一个单独的类获取方法的返回值
当用户点击一个按钮的操作是应该做到这一点:
- (IBAction)startAction:(id)sender {
MyClass *anInstance = [[MyClass alloc] init];
NSLog(@"the name is:%@", [anInstance name]);
正如你可以看到,MyClass的有“名”的方法,它是这样的:
- (NSString *)name {
return [nameInput stringValue];
NSLog(@"stringValue = %@", [nameInput stringValue]);
nameInput是用户填充名称的文本字段,按下按钮调用“startAction”,该方法应在另一个类中调用“name”,该类应从文本字段返回字符串值并创建日志。
实际发生的事情是,当按下开始时,日志会显示“名称是:(空)”。而第二个日志甚至没有出现。我认为这是因为“名称”方法没有被调用。但我不知道为什么。我应该指定,他们是在不同的班级,我宣布这样的“名”的方法:
- (NSString*)name;
编辑:经过我身边多一点嘴硬发现,当“名”的方法会从它自己的类中调用,日志正确显示了文本字段中的内容。我在“name”方法中加入了一个额外的日志,并且我可以看到它被从另一个类中调用,但是它返回的值仍然为(null),这意味着在调用之后发生了阻止从获取文本字段字符串的类。
编辑:我不知道这是否重要,但其中一个类是NSObject的子类,另一个是NSViewController的子类。
如果您需要更多信息,请告知我。 感谢您的帮助。
修复顺序现在使它们都出现,但它们仍然只显示(空),即使再次链接它之后 – Elbimio