我在 firstClass 中创建 ac 数组(这是在界面中创建的):
BOOL taken[25];
然后我转到不同的视图并返回第一个视图,除了我的 c 数组重置为 0,
当我在视图之间来回切换时,如何保留我的数组?
我在 firstClass 中创建 ac 数组(这是在界面中创建的):
BOOL taken[25];
然后我转到不同的视图并返回第一个视图,除了我的 c 数组重置为 0,
当我在视图之间来回切换时,如何保留我的数组?
您不能将保留消息发送到纯 C 数组。正常的 C 内存管理适用。即局部堆栈变量会在超出范围时消失,全局变量将存在等。如果您需要“长期”内存,请使用动态分配的内存(C++ 中的 malloc 或 new),但您有责任在您使用时释放它重新完成它。
像“BOOL take[25]”这样的直接数组的生命周期与它所在的对象的生命周期相同。如果周围的对象被释放,则数组随之而来;相反,如果周围的对象被保留,那么数组也是如此。因此,要保留这个数组,请确保视图没有被释放,并确保它与您上次使用的视图对象相同。
特别是在 iOS 视图控制方面(我认为您要问的是),尝试在“视图控制器”中编写您的业务逻辑,并让它重用 UIView 对象。或者,如果您不重复使用相同的视图,至少让它将新视图(包括数组)初始化为正确的值。