【问题标题】:Change UIView Dynamically动态改变 UIView
【发布时间】:2009-10-31 07:13:53
【问题描述】:

从事 cs193p(斯坦福 iphone 编程在线视频),我正在从事 Presence1 练习

我正在尝试动态更改作为另一个视图的子视图的 UIView。

对于那些不知道课程上发布的作业的人,该应用程序的架构基本上如下:

导航控制器 -> (根) 视图控制器 - (VC)1 用于第一个屏幕 -> 调用详细视图控制器 VC2 用于下一个屏幕

现在,第一个屏幕包含我想从我的模型动态加载的图像和文本(这是我在将第一个 VC 推送到导航堆栈之前在 App 委托中实例化的对象。我在 initWithNibName 方法中定义了一个参数以在为 VC1 初始化笔尖时传递此模型对象。我还尝试在此处以及在 viewDidLoad 和 viewDidAppear 方法中设置模型中的图像。它不起作用。

我调试的时候看到传过来的模型对象是空的。

如果您了解问题,请让我知道我错过了什么。
如果需要,我可以发布代码,但必须发布整个内容才能有意义。

【问题讨论】:

    标签: objective-c iphone uiimageview


    【解决方案1】:

    钉住 - 我在不需要时释放了我的模型对象 - 我正在创建对模型中存在的我的一个对象的“引用”(包含对象列表的数组)。注意 - 我没有使用 alloc/copy 创建新对象。然后我释放它(即使在推送到导航堆栈之后) - 显然导致我的对象内存空间被清除,并且反映在我的视图控制器中,该控制器接收该模型对象作为其 init 方法中的参数。这给人一种对象没有被传递给视图控制器的错觉!



    早先的经验教训 - 在释放对象时要非常小心。
    今天的经验教训 - 释放对象时要非常小心。不要过度释放对象-确保仅在调用分配/复制或显式保留对象时才释放对象-内存管理101-重新访问:)


    感谢大家没有回复这个问题。在某种程度上,它迫使我在非常微观的层面检查我的代码,我相信我的余生都不会忘记这一点! :)

    【讨论】:

      猜你喜欢
      • 2017-03-19
      • 1970-01-01
      • 1970-01-01
      • 2017-07-14
      • 1970-01-01
      • 2015-01-07
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      相关资源
      最近更新 更多