我正在开发一个迷你问答游戏。在开始的xib中,我使用以下方法获取了首选的用户名,并将其传递给model(ModelUnit):
//intro.h
@interface introViewController : UIViewController{
ModelUnit * modl;
}
//intro.m
-(ModelUnit *) modl{
if(!modl){
modl = [[ModelUnit alloc] init];
}
return modl;
}
- (IBAction)nickEntered:(UITextField *)sender{
[[self modl] setName:[sender text]];
.....
}
但是,当我尝试在顺序最后一个xib中创建另一个指向ModelUnit的指针时,它将用户名返回为null。所以我认为它必须是相同的指针才能到达相同的位置。我该怎么办?谢谢你的帮助。
最佳答案
您可能甚至没有设置正确。查看您如何在intro.m文件中以两种不同的方式引用“ modl”
[self modl]是指称为'modl'的属性。'modl'的正常使用是指类似于您在接口中声明的变量。
这表明您可能甚至没有将用户名存储在您创建的'modl'对象中。或者您有两个“ modl”对象。 (肯定要看完整的代码)
为了能够从该视图/类的外部访问“ modl”,您可能必须创建一个返回“ modl”的getter。您可以手动执行此操作,也可以声明要使用的属性,而不是自动使用getter和setter的变量(@property)。这仍然需要您引用Intro对象。如果没有,您将不得不将其存储在其他地方,或者像建议的Hot Licks一样传递它。
关于ios - 如何在 objective-c 中传递指针?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22290233/