1

我在 firstClass 中创建 ac 数组(这是在界面中创建的):

BOOL        taken[25];

然后我转到不同的视图并返回第一个视图,除了我的 c 数组重置为 0,

当我在视图之间来回切换时,如何保留我的数组?

4

2 回答 2

3

您不能将保留消息发送到纯 C 数组。正常的 C 内存管理适用。即局部堆栈变量会在超出范围时消失,全局变量将存在等。如果您需要“长期”内存,请使用动态分配的内存(C++ 中的 malloc 或 new),但您有责任在您使用时释放它重新完成它。

于 2010-08-22T20:01:07.597 回答
1

像“BOOL take[25]”这样的直接数组的生命周期与它所在的对象的生命周期相同。如果周围的对象被释放,则数组随之而来;相反,如果周围的对象被保留,那么数组也是如此。因此,要保留这个数组,请确保视图没有被释放,并确保它与您上次使用的视图对象相同。

特别是在 iOS 视图控制方面(我认为您要问的是),尝试在“视图控制器”中编写您的业务逻辑,并让它重用 UIView 对象。或者,如果您不重复使用相同的视图,至少让它将新视图(包括数组)初始化为正确的值。

于 2010-08-22T20:10:00.497 回答