【问题标题】:Release static int variable释放静态 int 变量
【发布时间】:2010-01-05 16:45:26
【问题描述】:

如何在视图类方法中“清理”静态 int 变量?每次回到这个视图时,我都需要将这些变量“归零”。 [self.view removeFromSuperview]; 指令似乎不足以从这些变量中释放内存。

谢谢。 2010 年过得愉快!

这些 int 变量在视图方法中被声明为静态的。它们在视图类中不是全局的。

【问题讨论】:

    标签: iphone variables static uiview


    【解决方案1】:

    如果您不想保留静态值,请不要将其设为静态。

    【讨论】:

    • 这很重要。只要我在他们的视野中,我希望静态值一直存在。就在离开那个观点之后……噗,他们走了。当我回到他们的观点时,我希望他们已经“归零”。像本地变量一样。这些 int 变量在视图方法中被声明为静态的。它们在视图类中不是全局的。谢谢。
    • 听起来您正在寻找实例变量。如果您的视图在消失后仍保留,为什么不将-viewWillAppear:-viewDidDisappear 中的实例变量归零?
    • AFAIK,当分配在函数(或方法)内部定义的静态变量时,你真的不能稍后释放它。
    • @bentford 我相信你可以稍后发布它,只要我们谈论的是 Objective-C 对象。调用一个 static 不会以任何方式影响其保留计数 - 如果您想保留它,您仍然可以保留它。
    【解决方案2】:

    您必须通过定义类似于以下内容的 setValue 方法手动执行此操作:

    @interface MyClass 
    {
      // ...
    }
    + (NSString *)myVar;
    + (void)setMyVar:(NSString *)newVa;
    @end
    
    @implementation MyClass
    static NSString *myVar;
    + (NSString *)myVar { return myVar; }
    + (void)setMyVar:(NSString *)newVar { myVar = newVar; }
    @end
    

    【讨论】:

      猜你喜欢
      • 2011-01-26
      • 1970-01-01
      • 2011-11-11
      • 2011-12-18
      • 2011-07-30
      • 2013-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多