【问题标题】:Object allocations and their release对象分配及其释放
【发布时间】:2012-02-13 07:35:09
【问题描述】:

我对对象分配及其在目标中的释放的理解是..this.. 如果假设我用 alloc init 分配了一个对象,那么我需要在它最后一次引用之后释放它。 像这样……

 MyViewController *myView=[MyViewController alloc ]init];
 [self.view presentModalViewController myView animated:YES];
  [myView release];

但是,如果假设我需要 NSMutableArray 。 我将其设置为

  @property(nonatomic, retain)NSMutableArray *myArr; 

并且需要这个数组通过我的 viewcontroller 手段例如说...... view 有 uitableview 并且它的数据源是这个数组 (myArr)。

并且应用程序通过 Sqlite3 拥有其本地数据存储副本。

所以我使用 sqlite 3 的 select statemnt 将对象添加到这个数组中。

因为我每次 viewappears 时都需要这些数据,所以我在 viewDidAppear 中分配了这个 myArr 作为...

myArr=[NSMutableArray alloc]init];

我需要在 cellForRowAtIndexPath () 方法中为 uitableview 的每个单元格添加值。

表示它的las引用在cellForRowAtIndexPath()中

所以我的问题是我应该在哪里释放这个分配的 myArr 对象

thnx in advnce

亲切的问候 囧囧

【问题讨论】:

    标签: objective-c ios4 uiviewcontroller


    【解决方案1】:

    我认为合适的地方是

    - (void)viewDidUnload
    {
        [super viewDidUnload];
        // Release any retained subviews of the main view.
        // e.g. self.myOutlet = nil;
    }
    

    【讨论】:

    • 然而,这个方法只有在我没有错的时候才调用一次,我每次视图出现时都会分配
    • 如果您只是隐藏和显示一个视图,您可以尝试在viewDidDisappear: 中执行此操作,只要确保在视图不可见时不要尝试访问它
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-02
    • 2010-12-19
    相关资源
    最近更新 更多