我正在开发一款迷你问答游戏。在开放的 xib 中,我使用以下方法获取首选用户名并将其传递给模型(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”对象。 (必须查看完整的代码才能确定)
为了能够从该 View /类外部访问“modl”,您可能必须创建一个返回“modl”的 getter。您可以手动执行此操作,或者声明一个要使用的属性,而不是自动附带 getter 和 setter 的变量 (@property)。这仍然需要您拥有对 Intro 对象的引用。如果没有,您将不得不将其存储在其他地方,或者像 Hot Licks 建议的那样将其传递。
关于ios - 如何传递 objective-c 中的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22290233/