Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 释放视图中的对象将消失_Iphone_Objective C_Cocoa Touch_Memory Management_Uiviewcontroller - Fatal编程技术网

Iphone 释放视图中的对象将消失

Iphone 释放视图中的对象将消失,iphone,objective-c,cocoa-touch,memory-management,uiviewcontroller,Iphone,Objective C,Cocoa Touch,Memory Management,Uiviewcontroller,释放ViewWill中的对象是否安全?假设这些对象将再次在ViewWillDisplay上重新创建 我就是这样写的。这样做有什么害处吗 - (void)dealloc { [self releaseObjects]; [super dealloc]; } - (void)releaseObjects { self.request = nil; self.loadingOverlay = nil; self.textView = nil; self

释放ViewWill中的对象是否安全?假设这些对象将再次在ViewWillDisplay上重新创建

我就是这样写的。这样做有什么害处吗

- (void)dealloc {
    [self releaseObjects];
    [super dealloc];
}

- (void)releaseObjects {
    self.request = nil;
    self.loadingOverlay = nil;
    self.textView = nil;
    self.label = nil;
    self.endPoint = nil;
}

- (void)viewWillDisappear:(BOOL)iAnimated {
    [super viewWillDisappear:iAnimated];
    [self releaseObjects];
}

通常,在创建变量的函数的“companion”函数中释放变量。因此,如果在ViewWillDisplay中创建它们,则在ViewWillEnglish中释放它们。viewWillLoad、viewWillUnload中的释放等


所以是的,这是正常的。

它不应该破坏任何东西,但它可能是浪费。。。假设vc位于选项卡上,用户在选项卡之间重复切换。你会做很多额外的免费/免费工作


除非有不寻常的资源消耗,否则我会让操作系统告诉我,我应该使用为此目的而设计的挂钩释放内存:didReceiveMemoryWarning、dealloc等。

但这不是意味着每次用户在选项卡之间反复切换时,我都会创建自动释放的对象吗。此外,在我关闭视图控制器之后,我看不到dealloc被调用。我这样做是因为我看到我的应用程序中出现了内存警告-一天2-3次!