Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在iOS中全局存储和重用UIViewController是否安全?_Ios_Objective C_Uiview_Uiviewcontroller - Fatal编程技术网

在iOS中全局存储和重用UIViewController是否安全?

在iOS中全局存储和重用UIViewController是否安全?,ios,objective-c,uiview,uiviewcontroller,Ios,Objective C,Uiview,Uiviewcontroller,全局存储由创建的UIViewController实例是否安全 UIViewController *myController = [storyboard instantiateViewControllerWithIdentifier:@"ViewID"]; 然后再利用它们?如果内存不足会发生什么?iOS会释放一些以前实例化但不活动的UIViewController吗 我之所以问这个问题,是因为一些UIViewController的内存非常紧张。此外,该应用程序的结构使各种UIViewContro

全局存储由创建的
UIViewController
实例是否安全

UIViewController *myController = [storyboard instantiateViewControllerWithIdentifier:@"ViewID"];
然后再利用它们?如果内存不足会发生什么?iOS会释放一些以前实例化但不活动的UIViewController吗

我之所以问这个问题,是因为一些UIViewController的内存非常紧张。此外,该应用程序的结构使各种UIViewController可以相互访问,如果只有一个实例就足够了,我希望通过使用各种实例来避免浪费内存


我只是好奇,是否有任何情况下iOS会删除/释放任何(不可见的)UIViewController,例如,当内存不足时。

为什么要考虑这样做?在内存管理方面,视图控制器并不特别。没有人会自动释放它们,除非您使用的是
NSCache
或类似的类。如果你保留引用,你的工作就是监听内存警告并释放它们。
安全吗
?这可能是一种安全的方式。但是要回答你没有问的问题。。。这是个好主意吗?一般来说,没有。这条规则可能有例外,但我不知道有例外。通常情况下,没有理由这样做,因为这会带来额外的问题。有一些特定的用例是一个有效的想法,例如,最小化控制器加载对性能的影响,但我不认为创建一个真正的全局控制器是合理的。为什么这是一个坏主意?它还会导致哪些其他问题?请再详细解释一下。