簡體   English   中英

保留Objective-c中的C數組

[英]retain C array in objective-c

我在firstClass中創建了一個ac數組(這是在接口中創建的):

BOOL        taken[25];

然后我轉到另一個視圖並回到第一個視圖,除了我的c數組重置為0,

當我在視圖之間返回時,如何保留我的數組?

您不能將保留消息發送到普通C陣列。 正常的C內存管理適用。 即,當超出范圍,全局變量將存在時,本地堆棧變量將逐漸消失,等等。如果您需要“長壽”內存,請使用動態分配的內存(malloc或C ++中的新內存),但是當您需要時,您有責任將其釋放 。完成它。

像“BOOL take [25]”這樣的直接數組的生命周期與它所在對象的生命周期相同。如果周圍的對象被釋放,則數組隨之而來; 相反,如果保留周圍的物體,那么陣列也是如此。 因此,要保持此數組,請確保視圖未被釋放,並確保它與上次使用的視圖對象相同。

特別是在iOS視圖控制方面(我認為你在問什么),嘗試在“視圖控制器”中編寫業務邏輯,並重新使用UIView對象。 或者,如果您不重復使用相同的視圖,至少要將新視圖(包括數組)初始化為正確的值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM