- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个关于 ARC 的简单问题。如果用户在 UIViewController 中使用 addSuperView 点击按钮,我会显示一个 UIView。 UIView 包含一个关闭按钮,如果点击我想删除 View 。
我曾经在屏幕外动画 View 后调用 UIViewController 中的方法:
- (void)viewDidClose:(UIView *)view
{
[view removeFromSuperview];
[view release], view = nil;
}
现在使用 ARC 我将其更改为:
- (void)viewDidClose:(UIView *)view
{
[view removeFromSuperview];
view = nil;
}
现在的问题是:我想删除协议(protocol)和对 View Controller 的委托(delegate),并在 UIView 本身中执行此操作。
ARC 前(在 View 内):
- (void)didStop
{
[self removeFromSuperview];
[self autorelease];
}
我不能在 ARC 中使用“autorelease”,也不能设置“self = nil”,据我所知,一旦我将 View 设置为 nil 或替换它,ARC 就会到位,但如果我不这样做会怎样代替它? [view removeFromSuperview] 是否足以处理所有事情或是否存在泄漏?
非常感谢!感谢您的帮助!
最佳答案
(请注意,在您的非 ARC 版本中,您需要在 removeFromSuperview
之前使用 autorelease
)。
我也想知道类似的事情。 “危险”是,当您执行 removeFromSuperview
而没有先执行 autorelease
时,对象会立即释放,甚至在方法结束之前。这很滑稽。
我的想法是让方法返回 self
。在非 ARC 的情况下,您将使用 autorelease
创建此指针,但 ARC 应该为您做这件事。您可能不需要调用者中的指针,但我相信这会迫使 ARC 执行您想要的操作。
关于iOS SDK : ARC removeFromSuperview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9024048/
我确信这是一些愚蠢的错误,但在过去的一个小时里我试图从我的 super View 中删除 subview ,但没有成功。 在我第一次观看时 UIViewController *helpView = [
我不知道如何描述正常场景,调用removeFromSuperview时会导致0.3%崩溃。 这是跟踪: Exception Type: SIGSEGV Exception Codes: SEGV_AC
我在 tvOS 项目中有此代码 var loader: UIViewController! 。 。 . override func viewDidLoad() { super.viewDidL
我有一个带有后退按钮的页面,可以将我带到收件箱。我在 viewWillDisappear 中执行此操作 - -(void)viewWillDisappear:(BOOL)animated { [sup
我添加了多张图片并缩放显示它们。由于内存大小有限,我应该尝试删除其中一些已经通过 removeFromSuperview 看到的内容。我的问题是,当我尝试缩放时,所选图像被 removeFromSup
我有一个从 xib 加载的 UIView 子类,如下所示: // The xib custom view private var view: UIView! override init(frame:
我有以下类来添加和删除事件指示器 View : import Foundation import UIKit class ViewControllerUtils { var container: UI
另一个让我头疼的问题。我以编程方式创建了一个 UIButton。它的唯一目的是站在另一个已按下半秒钟的按钮之上。底部按钮是图片,顶部按钮是垃圾桶。您可以在这里看到我正在尝试做的事情:我有一张图片,要删
我在用 Objective-C 编程对象时有一个小问题。我有一个即将完成的应用程序,一切正常。我的问题是我将我的对象设置为 nil 并在适当的时候释放它们。 但这足够了吗?我应该在何时何地使用 rem
我有六个 ImageView ,我这样设置它们: img1 img2 img3 img4 img5 img6 但是当我使用 removeFromSuperview 函数删除 img1 时,其他 Ima
我有一个 MBProgressHUD,我分配如下: self.progressHUD_ = [[[MBProgressHUD alloc] initWithView:self.view] autor
在使用 imagePickerController 选择图像后,我尝试使用 Core Data 从我的 ViewController.swift 中保存一个对象。我在保存时显示带有微调器的 View
我声明了一个名为 var progressBar 的 UIView 变量:UIView? 我用这个函数显示或隐藏 View func showProgressBar(showBar: Bool){ i
我想在询问触摸 ID 时模糊背景,一旦授权成功,viewcontroller 需要可见。但这没有发生。即使授权成功,viewcontroller 仍然模糊。谁能帮我如何解决这个问题? import U
我需要能够从 View 中删除一个按钮并添加一个不同的按钮。我的代码如下所示: -(void)UpdatePromoBanner:(NSString*)value{ [button setTi
我想制作从 subview 返回到 super View 的动画。 我使用以下方式显示 subview : [UIView beginAnimations:@"curlup" context:nil]
我有一个方法,可以对 UIWindow 的一个 subview 进行动画处理,然后使用 removeFromSuperview 将其从 UIWindow 中删除。但是当我将 removeFromSup
我正在尝试使用以下代码从现有 View 中删除图像: -(void) deleteImage:(int)imageID{ //[self.imageArray removeObjectAtIndex:
我目前正在做一个 ipad 项目并找到了这个。所以这是我的结构 我将 uiviewcontroller 子类化为 customizedVC,像这样 @protocol customizedVCDele
我正在使用 GADBannerView 来展示横幅广告。这是我加载广告的方式: override func viewDidAppear(_ animated: Bool) { supe
我是一名优秀的程序员,十分优秀!