繁体   English   中英

如何在objective-c中保持在方法中创建的对象?

[英]How do I keep an object created within a method alive in objective-c?

我想在我使用核心图创建的应用程序中放置多个饼图。 我创建了一个包装类(让我们称之为PieChartViewControlle r),它是一个视图控制器,并设置图形和一些按钮和动作,使图形交互。 要部署它,我通常只是在另一个包含PieChartViewController视图控制器上创建一个属性,当我初始化这个视图控制器时,我只需要分配/初始化PieChartViewController并将其视图添加到主视图中。 这通常很好。

问题是在另一个视图中,我想向视图添加可变数量的图形,并且在初始化视图控制器时确定此数字。 我有一个方法初始化每个PieChartViewController并将其添加到父级的NSMutableDictionary ,以便我可以保持对它们的引用。 然而,这似乎并没有使它们保持活力,因为我总是得到BAD_ACCESS 2崩溃,当运行仪器时我意识到它们被释放了。

因此,当PieChartViewControllers存储在一个属性上时,这一切都很好,但是当我把它们放在字典中时,它们似乎不能保持足够长的时间。 我仍然不太熟悉objective-c中的内存管理,我不确定如何去做,感谢任何帮助。

我只是分配/初始化PieChartViewController并将其视图添加到主视图中。 这通常很好

它可能工作正常,但不要这样做。 这是对UIViewController的误用。 请参阅我的回答: https//stackoverflow.com/a/15962125/341994

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM