ios - 如何传递 objective-c 中的指针?

标签 ios objective-c

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

相关文章:

ios - NSAttributedString 绘制(在 : rect) in Swift have poor performance?

通过Apple开发者邀请发布iOS应用程序

iphone - 在第二个 View 中加载选项卡栏

objective-c - 当用户输入错误的输入时,如何在文字游戏中做出默认答案?

iOS 旁白/无障碍外语发音

ios - Swift 数组下标索引中的错误?

ios - 如何在运行 React Native 应用程序的 iOS 设备中启用实时重新加载?

ios - 从核心数据列表中删除 NSEntityDescription 对象

ios - 当应用程序处于 InActive 模式时如何处理静默推送通知?在 Objective-C 中

ios - 无法将 RGB 转换为 UIColor