iOS 7.1 删除超级视图崩溃

2024-01-10

我的应用程序没有发生任何崩溃,直到iOS 7.1出来。现在在任何removeFromSuperview方法,崩溃。例如:我有视图控制器,当我想删除视图控制器时,我删除它的所有子视图,然后从堆栈中删除(堆栈:我在其中存储视图控制器,用于加载新内容,并加载之前的内容):

    for (UIView *subView in [contentVc subviews])
         [subView removeFromSuperview];

我得到了

-[CALayer保留]:发送到已释放实例的消息

message

[actual removeFromParentViewController];

有什么好的方法可以去除吗?它会释放整个视图控制器及其子视图吗?因为我的应用程序不会崩溃,而不是removeFromSuperview。我不明白 iOS 7.1 中发生了什么变化。

我怎样才能删除所有子视图viewController没有removeFromSuperview,并且无需删除我的ViewController(如果我只想添加新的子视图,并删除当前的内容)?

UPDATE:

有时会崩溃:

[myactualviewcontroller.view removeFromSuperview];

-[CALayer保留]:发送到已释放实例的消息

Why???

有时,如果我尝试从视图控制器视图中删除主子视图,它会发生相同的崩溃:

[mainView removeFromSuperview]( mainView 是单个 UIView,添加到 vc.view )

UPDATE2:(很详细)

所以,我有一个容器视图。我正在添加一个UIViewController.view到这个容器。我将一个视图添加为子视图UIViewController.view。这个视图不是本地 uiview,我的意思是,它声明为implementation{ UIView* mainView }.当我的 UIViewController 将被释放时,在它的- (void) dealloc { [mainView removeFromSuperview]; [mainView release] [super dealloc];}在 mainView removeFromSuperview 我的应用程序崩溃。


在快速枚举数组时修改数组通常不是一个好主意。您似乎正在对视图的子视图数组使用快速枚举,并同时修改该数组(通过随时删除子视图)。你可以尝试这样的事情:

NSArray *subviewsCopy = [[contentVc subviews] copy];
for (UIView *subview in subviewsCopy) {
    [subview removeFromSuperview];
}

然而,正如其他一些人提到的,您需要费力手动删除这些子视图,这有点奇怪。在正常情况下,当视图控制器本身被释放时,视图控制器的视图(及其下的视图层次结构)将被自动清理。

还有一些很好的工具可以帮助您追踪问题的根源。特别是,您应该分析您的应用程序(在 Xcode 中的“产品”菜单下),并在 Instruments 提示您时选择“僵尸”工具。使用 Zombies,您可以查看释放后发送消息的对象的保留/释放历史记录。

如果您尝试手动清理视图层次结构,因为您怀疑视图会被泄露,我建议您还尝试 Instruments 中的 Leaks 工具,并验证当禁用此代码时相关视图是否确实被泄露。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iOS 7.1 删除超级视图崩溃 的相关文章

  • 水平 UICollectionView 单行布局

    我正在尝试使用以下命令设置简单的水平布局UICollectionView 兜圈子却没有达到预期的结果 所以任何指针或例子将不胜感激 我粘贴经常更改的代码但没有成功可能没什么意义 该图像显示两行 第一行是单个项目 尺寸正确并且在中心正确对齐
  • 在 iOS 7 Safari 中,如何区分通过边缘滑动与后退/前进按钮的 popstate 事件?

    在 iOS 7 Safari 中 现在有两种后退 前进导航方式 使用底部的传统后退 前进按钮箭头或从屏幕边缘滑动 我正在使用动画在 ajax 应用程序中的页面之间进行转换 但如果用户通过边缘滑动进行导航 我不想触发该转换 因为这本身就是一个
  • PFQueryTableViewController 错误

    我正在遵循在线教程 使用 Parse 作为后端创建照片共享应用程序 我已经运行了两次教程 两次都从头开始创建应用程序 但在同一位置仍然出现相同的错误 我到处寻找解决方案 但仍然没有运气 我正在使用 PFQueryTableViewContr
  • UIView晃动动画

    我试图在按下按钮时使 UIView 摇动 我正在调整我找到的代码http www cimgf com 2008 02 27 core animation tutorial window shake effect http www cimgf
  • 如何检测用户是否第一次打开应用程序[重复]

    这个问题在这里已经有答案了 是否可以检测用户是否是第一次打开iOS应用程序 使用Objective C 我想在用户第一次打开应用程序时显示欢迎消息 但之后不再向他们显示 我正在寻找类似的东西 BOOL firstTime AppDelega
  • 如何动态获取 UITableViewCell 的高度

    我创建了自定义的tableViewCell 我在UITableViewCell中添加了UIView SubView 所以我在 UIView 中的所有动态文本和图像内容都会根据文本和图像大小而变化 但现在 HeightforRowAtInde
  • 错误消息:您输入的捆绑包 ID 已被使用

    我正在尝试发布一个 iPhone 应用程序 这不是第一个 我过去已经发表过其他的 因此 我在第一个和第二个表单中输入了所需的信息 然后填写了第三个大表单 您还可以在其中上传图标和屏幕截图 好吧 我在上传屏幕截图之前按下了 保存 按钮 因为我
  • Flutter 应用程序在 iOS 平台的 firebase 电话身份验证中崩溃

    我在我的项目中实现了 Firebase Phone auth 在 Android 端 一切正常 但对于 iOS 端 当我尝试从我的端发送验证码时 应用程序崩溃并失去连接 我已在下面提交了我的代码 主程序 dart class MyApp e
  • SwiftUI 意外地自动弹出 NavigationLink

    我有一个简单的用例 其中一个屏幕使用 NavigationLink 推送另一个屏幕 iOS 14 5 有一个奇怪的行为 即推送的屏幕在被推送后立即弹出 Code NavigationLink destination EmptyView Em
  • 如何为 iPhone 6+、6 和 5 指定不同尺寸?

    我想让 iPhone 6 6 和 5 上的视图看起来几乎相同 在附图中 我的意思是 例如 取消 按钮在 iPhone 5 中距离屏幕左边缘应为 30 像素 在 6 中为 35 像素 在 6 中为 45 像素 其他元素也类似 如何为每种类型设
  • 为什么选择选择器选项后我的 SwiftUI 页面标题会发生变化?

    struct SettingsView View let settings Setting Setting name Aperture Increments options 1 3 1 2 1 Setting name Shutter Sp
  • Swift:长按手势识别器 - 检测轻击和长按

    我想连接一个动作 如果手势是点击 它会以特定的方式为对象设置动画 但如果按下持续时间超过 0 5 秒 它会执行其他操作 现在 我刚刚连接了动画 我不知道如何区分长按和点击 如何访问新闻持续时间以实现上述目的 IBAction func ta
  • iOS 7 tabBar 横线,如何去掉?

    Apple 在 iOS 7 中的 tabBar 上添加了一条细线 该线应该在 tabBar 和 UI 之间起到阴影或淡入淡出的作用 由于我使用的是定制的 tabBar 这条线非常令人恼火 你如何删除它 请告诉我这是可能的 否则我需要重新设计
  • 如何使用phonegap在iOS应用程序中防止键盘推送webview

    当屏幕底部的输入字段获得焦点时 键盘会向上推我的网络视图 并且页面的上部不再可见 我想防止键盘推高网络视图 有人有主意吗 对焦 设置window scrollTo 0 0 这可以防止键盘完全推高 webview input on focus
  • 在 iOS 上使用 RNCryptor 异步解密大文件

    我需要在 iOS 上使用 RNCryptor 异步解密一个大文件 以便显示进度条 我在任何地方都找不到示例 因此尝试了我猜对的方法 但是 我想出的方法不起作用 解密器的处理程序从未被调用 并且线程在发送所有数据后因 EXC BAD ADDR
  • 防止 iOS 键盘在 cordova 3.5 中滚动页面

    我正在使用 Cordova 3 5 和 jQuery mobile 构建 iOS 应用程序 我在大部分应用程序中禁用了滚动功能 但是 当我选择输入字段时 iOS 键盘会打开并向上滚动页面 我不想要这个功能 由于输入足够高 键盘不会覆盖它 我
  • 从现有坐标地图套件中查找最近的位置

    我正在为拥有多家商店的客户开发 iPhone 应用程序 目标 C 我有数组中所有商店 20 的坐标 纬度 长 目前我正在考虑循环遍历商店坐标数组并获取从用户当前位置到商店位置的距离 然后将它们添加到数组中并按最小距离进行排序 这是正确的方法
  • 诊断和仪器均缺少“僵尸”选项

    运行 Xcode 4 0 2 Zombie 选项丢失 其他 SO 帖子建议找到它的两个地方 Product gt Run looks like this Product gt Profile looks like this 奇怪的是 我之前
  • 所有 RestKit 项目在归档时都无法构建

    这个问题涉及RESTKIT 0 9 x 如果您是 Restkit 新手 请考虑使用较新的版本0 10 x https github com RestKit RestKit tree v0 10 1 branch 我最近继承了一个项目 使用r
  • Unwind segue 的用途是什么以及如何使用它们?

    iOS 6 和 Xcode 4 5 有一个称为 Unwind Segue 的新功能 展开转场可以允许过渡到故事板中场景的现有实例 除了 Xcode 4 5 发行说明中的 这个简短条目之外 UIViewController 现在似乎还有几个新

随机推荐

  • Python threading.Event() - 确保所有等待线程在 event.set() 上唤醒

    我有许多线程等待事件 执行某些操作 然后再次等待事件 另一个线程将在适当的时候触发该事件 我无法找到一种方法来确保每个等待线程在设置事件时恰好触发一次 我目前已将触发线程设置为休眠一段时间 然后清除它 不幸的是 这会导致等待线程多次抓取设置
  • 如果在 IE9 中查看,请替换脚本?

    根据用户浏览器运行不同的 JavaScript 有多容易 例如 如果有人使用 IE9 访问该网站 我希望它运行与 Chrome 用户正常运行的脚本不同的脚本 您可以使用有条件的评论 http www quirksmode org css c
  • Google Cloud“ascii”编解码器在安装过程中无法解码字节 0xe1

    我正在尝试安装 GoogleCloudSDK 但在安装过程中出现以下错误 Output folder C Program Files x86 Google Cloud SDK Downloading Google Cloud SDK cor
  • SQL Server:无循环的排列/组合

    我有两个数据集 第一个是产品配方表以及构成该配方的产品 第二个数据集包含按产品分类的单独定价 我可以为单个产品设置多个价格 我想要实现的是输出一个结果集 其中包含每个产品配方的独特排列 只有所有组件在第二个数据集中都有定价的配方才应出现在输
  • 下一个和上一个元素的CSS选择器[重复]

    这个问题在这里已经有答案了 如何单独定位列表元素 例如我想要 Html ul class roundabout holder li class roundabout moveable item li li class roundabout
  • 如何从 .NET 客户端应用程序加载 URL

    使用 C 和 NET 框架从 Windows 上的胖客户端应用程序打开 URL 的首选方法是什么 我希望它使用默认浏览器 下面的代码肯定有效 Process Start http www yoururl com Blah aspx 它会打开
  • 读取启动盘上的扇区

    这是我的问题的延续读取超级块 https stackoverflow com questions 339795 reading the superblock 假设我想以 Mac OS X 中的 HFS 文件系统为目标 我如何读取启动盘的第
  • 以编程方式更改 Windows 10 锁定屏幕背景(在桌面上)

    如何以编程方式更改 设置锁定屏幕背景图像 使用 VB NET C 或 Visual C 我使用的是 Win 10 Pro 并拥有 Visual Studio 2017 Pro 我在网上查了一下 但大多数解决方案似乎都不起作用 例如 Both
  • Achartengine - Android 中条形图的不同条形颜色

    我在 android 中使用创建了一张图表图表引擎 http achartengine org图书馆 我想用不同的颜色显示每个栏 我能做什么 请给我一些建议 提前致谢 只需查看给出的答案here https stackoverflow co
  • 在 django 中使用 Crispy_forms 时,“FormHelper”对象没有属性“append”

    我是 Django 的新手 我正在尝试使用脆脆的表单来设计表单的样式 我的应用程序中有一个表单 它恰好是一个模型表单 我已经遵循了此处所说的内容https stackoverflow com a 13201588 1076075 https
  • Laravel 5.x 数据库触发器和可能的最佳实践

    这篇文章的目的是提供信息并提出问题 大家好 我正在开发一个可以充分利用触发器的大型系统 我们目前正在使用 phpmyadmin 在 Laravel 5 2 和 php 7 上运行服务器端 在 Laravel 中 并没有太多关于如何通过迁移使
  • 概括 python 脚本以在目录中的所有文件上运行

    我有以下 python 脚本 with open ein csv r as istr with open aus csv w as ostr for line in istr line line rstrip n 1 print line
  • 这是一个指针吗? (如果是的话,它是如何初始化的?)

    有一个头文件 esUtil h 其中定义了一个名为 ESContext 的结构 其成员之一是 userData userData 是一个指向 void 的指针 使用它的程序主体如下 include esUtil h typedef stru
  • Facebook Connect for iOS:dialogDidComplete 响应区分

    我想知道如何区分用户在内联后流 FBDialog 中点击 提交 或 跳过 有谁知道要测试什么吗 我在 iOS 4 2 环境中使用最新的 iOS Facebook Connect Called when a UIServer Dialog s
  • 再次重新处理/读取Kafka记录/消息 - Consumer Group Offset Reset的目的是什么?

    我的 kafka 主题总共有 10 条记录 消息 2 个分区 每个分区有 5 条消息 我的消费者组有 2 个消费者 每个消费者已经分别从其分配的分区读取了 5 条消息 现在 我想从开始 开始 偏移量 0 重新处理 读取我的主题中的消息 我停
  • 带注释的收藏袋

    我正在观看一个由 制作的精彩视频伯特 贝克威斯 http www infoq com presentations GORM Performance http www infoq com presentations GORM Performa
  • 无法检索 Eclipse 插件中选定的 java 文件名/路径

    我正在开发一个插件 需要 检索 java 文件的路径 文件名 我编写的代码成功检索了 xml 或清单文件的文件名 路径 但无法检索包中 Java 文件的路径 我使用的代码是 if IStructuredSelection 的选择实例 Obj
  • 如何在Vue JS中动态渲染组件?

    我正在制作一个表单生成器 它使用其中的组件作为输入字段 按钮等 我希望能够根据我传递给它的选项来生成表单 但我无法让它渲染组件 我尝试返回纯 HTML 但这不会渲染组件 我从 Home vue 模板中调用表单生成器 我希望表单具有如下所示的
  • 线程池并行处理消息,但保留对话中的顺序

    我需要并行处理消息 但保留具有相同会话 ID 的消息的处理顺序 Example 让我们像这样定义一个消息 class Message Message long id long conversationId String someData 假
  • iOS 7.1 删除超级视图崩溃

    我的应用程序没有发生任何崩溃 直到iOS 7 1出来 现在在任何removeFromSuperview方法 崩溃 例如 我有视图控制器 当我想删除视图控制器时 我删除它的所有子视图 然后从堆栈中删除 堆栈 我在其中存储视图控制器 用于加载新