问题标签 [viewdidunload]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
785 浏览

ios - 为什么我的 UIViewController 的视图在可见时被卸载?

这个问题从来没有发生在我身上。我在 UINavigationController 中有一个 UIViewController。当收到内存警告时(不管级别),可见viewDidUnload控制器的方法被调用,所以视图被卸载,我得到一个很棒的黑屏(顶部有一个导航栏)。

我在 iOS 4.3.3 上使用 iPad 1 进行测试。

有什么建议么?

0 投票
1 回答
414 浏览

ios - iOS 内存管理 - 内存不足警告和 viewDidUnload

当我收到内存警告时出现此错误:

Xcode 显示错误位于以下行:

所以我的问题是,为什么此时会释放 productImages(它是一个滚动视图)?我不应该有机会转储它的子视图吗?

它是这样定义的:

0 投票
2 回答
248 浏览

ios - 没有为 UIscrollView 中的 viewControllers 调用 ViewDidUnload

我有这个层次结构:

MainViewController -> 子视图控制器 -> UIScrollViewController -> 几个 (4) 视图控制器。

当我离开时,Sub View Controller我希望里面的 ViewControllerUIScrollView会调用他们的 ViewDidUnload,这样我就可以关闭一些进程。

实现这一目标的正确方法是什么,我不得不说我的目标是 iOS 4.1 及更高版本。

谢谢沙妮

0 投票
1 回答
575 浏览

objective-c - 以编程方式卸载 iOS 设备上的所有视图

编辑标题

我正在使用 Core Data 存储从服务器收集的一些数据。在appDelegate'sapplicationDidBecomeActive中,我检查应用程序是否需要下载新数据(从我服务器上的版本变量)。如果它有旧信息,它会下载新数据。

问题是,在我的某些观点中,我有tableViews. Core Data这些从in 中提取的数据数组中获取数据viewDidLoad。打开应用程序时,viewDidLoad已经调用了 ,然后它更新了 中的数据Core Data,然后当我使用 输入视图时tableView,所有行都是错误的。就我而言,所有行都显示与第一行相同的图像,并且没有任何文本。我在想旧数组有一些损坏的数据需要重新加载。在我写这篇文章时,我意识到viewDidLoad需要再次调用。或者至少是viewDidLoad. 我不想把它移到viewDidAppearwillAppear,因为这意味着这种情况每次都会发生。我想过强制重启这个过程,但我读到这是不可能的,而且苹果无论如何都会拒绝强制退出。

实际上,我只需要知道如何以编程方式从 卸载所有视图AppDelegate,以便它们必须viewDidLoad再次调用。或者再强制一个viewDidLoad

0 投票
1 回答
181 浏览

iphone - iphone应用程序开发的内存问题

我正在开发一个 iphone 应用程序,它使用非常简单的界面并在后端进行数据库处理。我也在启用 ARC OPTION。我的 viewDidLoad 方法如下:

我的 .h 文件包含定义如下的 IBOutlets:

请告诉我在dealloc和viewDidUnloadMethod中我需要做什么?我正在使用 ARC 选项。
此外,当我在模拟器中使用配置文件选项运行应用程序以进行内存分配和泄漏时,它有时会显示 MEMORY LEVEL LOW WARNING 和 MEMORY LEVEL NORMAL。这是什么原因?

0 投票
3 回答
19311 浏览

deprecated - viewDidUnload no longer called in ios6

I just installed the new version of Xcode/ios6. viewDidUnload is now depreciated.

In the apple doc,

viewDidUnload [...] Deprecated in iOS 6.0. Views are no longer purged under low-memory conditions and so this method is never called.

But numbers of apps are using this callback to release their properties, like :

This was the best practice to release your IBOutlets.

So, first question:
What is going to happen these existing apps in iOS 6? Will they leak ?

and second one:
What is the new recommended way to release an IBOutlet property ? In dealloc method ?

0 投票
3 回答
14102 浏览

objective-c - iOS 6 弃用 viewWillUnload 并移至 didReceiveMemoryWarning

我是即将推出我的第一个应用程序的新开发人员。我对viewDidUnload以下 Apple 的 iOS 6 发行说明中所述的弃用感到困惑:

在 iOS 6 中,UIViewController 的 viewWillUnload 和 viewDidUnload 方法现已弃用。如果您使用这些方法来释放数据,请改用 didReceiveMemoryWarning 方法。如果不使用视图控制器的视图,您也可以使用此方法释放对视图控制器的视图的引用。在执行此操作之前,您需要测试视图是否不在窗口中。

为什么会这样?我应该遵循哪些准则来确保此更改不会导致我的应用出现任何性能问题?

谢谢。

0 投票
1 回答
2586 浏览

properties - XCode 4.5 自动生成 @synthesize

我知道在 xcode 4.5 中它会自动生成 @synthesize 并且还为变量赋值实现下划线前缀最佳实践(如另一个线程中所述)。我有两个相关的问题,您的帮助将不胜感激:

  1. 是否有文档描述了有关 xcode 4.5 的这些详细信息?我没有立即看到它在哪里。你怎么发现这个?

  2. 此外,似乎当一个 IBOutlet 被拖放时,通常的“viewDidUnload”实现不再在 xcode 4.4 中生成。我应该自己实施还是发生某些事情使其不再需要?

谢谢!莫

0 投票
3 回答
4037 浏览

ios - 应该将 viewDidUnload 中的哪些工作移至 didReceiveMemoryWarning?

在新的 iOS 6 中,viewDidUnload已弃用,我们被指示使用它didReceiveMemoryWarning来管理 UIViewController 实例和子类中的对象。将 nils 分配给内部的 UIView 种类是否同样有效,didReceiveMemoryWarning就像它在内部完成的方式一样viewDidUnload

我问这个是因为这两种方法似乎工作方式不同。似乎didReceiveMemoryWarning不能保证viewDidLoad再次调用以重新实例化任何必要的 UIView。

我怀疑使用 iOS 6,无需手动释放 UIView 即可完成内存管理。请帮助我了解我在理解 UIViewController 的生命周期时遗漏了什么。

0 投票
3 回答
2575 浏览

ios - iOS - 未调用 viewDidUnload,但调用了 didReceiveMemoryWarning

试图找出某些设备崩溃的原因。我注意到我的视图控制器正在接收didReceiveMemoryWarning,但不是viewDidUnload。根据苹果的说法:

您不会使用 didReceiveMemoryWarning 来释放对视图对象的引用,您可能会使用它来释放您尚未在 viewDidUnload 方法中释放的任何与视图相关的数据结构。(视图对象本身应始终在 viewDidUnload 方法中释放。)

所以,

- 答:为什么viewDidUnload不叫?如果从不调用它,我无法在此处删除我的视图对象。

B:如果我不应该删除 中的视图对象didReceiveMemoryWarning,我还能在哪里执行此操作?

C: 使用 ARC,我还需要删除视图对象、将数组设置为 nil 等吗?