我正在开发一个迷你问答游戏。在开始的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/

10-09 02:17