IOS系列——页面释放不掉的问题

【iOS开发系列】启动页面广告(可实现动态加载) 很多APP启动的时候,需要动态的更换启动页面,可以在这个地方增添广告或者是将APP中新加入的一些活动信息等展示给用户。废话不多说,上代码: 首先声明一下我们需要的这个页面:@property (strong, nonatomic) UIView *ADView; @synthesize ADView; 一般都是在AppDelegate中的这个方法进行实现,当然这里面的图片 阅读详情

在之前的文章中也有写一些页面跳转,和页面对应的释放问题,但是对于新手来讲,有时候总是会忘记release;很多时候页面的确是跳转过去了,但是关闭页面的时候,内存释放不掉,在这里我也根据我在之前的一段时间的学习和应用中,总结了我遇到过的几种可能性

1、手动释放内存的:

一定要注意,有些对象没有释放的话,页面一样可以释放掉,比如NSString 、NSMutableArray 等等这样的对象,,只不过会造成内存泄露。

但是对于一些视图类的对象,如果不释放,即使关闭页面,内存也释放不掉,比如UIView *view  UIImageView *view  UIScrollview *view 等等,这里面的view都要释放掉才能保证内存及时准确的释放

            secondview *sec = [[secondview alloc]initWithNibName:@"secondview" bundle:nil];
            [self presentViewController:sec animated:NO completion:^{}];
            [sec release];
而且在跳转页面的时候,上面代码里面的这个也要保证释放过

2、使用ARC自动回收机制的

使用自动回收机制的,我们不用吧注意力几种到release上,但是同样的,他的回收也是我们不可控制的,这就导致有些时候,对象release不了导致页面释放不了,比如说,页面跳转的时候,我们定义一个全局变量  (secondview 是额外的一个类页面)

@interface ViewController (){
    secondview *sec;
}
然后我们在跳转事件的时候这样写
            sec = [[secondview alloc]initWithNibName:@"secondview" bundle:nil];
            [self presentViewController:sec animated:NO completion:^{}];
这样页面跳转过去之后,即使关闭页面,这个页面内存也释放不掉,这个也提醒我们,我们在使用全局变量的时候,要多留意了

3、页面中有循环回调函数的:

如果页面中有循环回调函数,页面关闭的时候也关不掉,比如我之前写了一个页面,上面是有一张图片的不停旋转

-(void)startAnimation:(UIImageView *)view{
    CGAffineTransform endAngle = CGAffineTransformMakeRotation(angle * (M_PI / 180.0f));
    [UIView animateWithDuration:0.5 delay:0 options:UIViewAnimationOptionCurveLinear animations:^{
        view.transform = endAngle;
    } completion:^(BOOL finished) {
        angle += 1;
        [self startAnimation:view];
    }];
}
如果在方法中直接这样写得话,内存是释放不掉的, 为了避免这种状况,我们需要加判断,在关闭页面的时候让他不能继续回调;设置一个BOOL变量 haveClosed;并初始化为YES;在关闭页面的时候,将haveClosed设置为NO;旋转的函数改写为:
-(void)startAnimation:(UIImageView *)view{
    CGAffineTransform endAngle = CGAffineTransformMakeRotation(angle * (M_PI / 180.0f));
    [UIView animateWithDuration:0.5 delay:0 options:UIViewAnimationOptionCurveLinear animations:^{
        view.transform = endAngle;
    } completion:^(BOOL finished) {
       if(haveClosed == YES){
        angle += 1;
        [self startAnimation:view];
    }else{
        return ;
       } 
    }];
}

iOS软键盘调用遮挡问题及软键盘撑起的页面无法正常回退到原来位置BUG解决方案 最近在写一个h5,大家都知道,移动端开发嘛,兼容问题是经常会遇到的,尤其是iOS,本人已经无力吐槽了。 虽然移动端安卓和iOS大部分内容都是兼容的,但是iOS还是有一些地方与安卓还是很有差异的,所以在开发过程中个人建议大家将iOS不兼容部分独立出来做处理。 今天本人就碰到了一个iOS的特殊bug,是输入框调起软键盘后输入框fixed定位失效被软键盘遮挡,发送消息过后软键盘占用部分无法正常回退的... 阅读详情

相关推荐

iOS App内H5页面倒计时保持准确的解决方案

在iOS应用中,H5页面的倒计时功能是常见的交互元素之一。然而,iOS平台的后台处理机制为实现精准倒计时带来了挑战。开发者经常面临着倒计时功能在应用挂起或进入后台时不能正常工作的困境。Background Fetch是iOS提供的一种机制,允许应用定期从服务器获取更新的数据,而无需用户显式地打开应用。这个过程是由系统控制的,开发者可以设置时间间隔,告诉系统应用何时更新数据最合理。在Background Fetch期间,应用被授予短暂的运行时间,需要快速地获取并更新数据。

weixin_42609225的博客 1314

半夜写代码之:APP 的 Form 的释放

在 Windows 底下,我们通常采用很多个 Form 来把复杂的界面元素,按功能划分,放到不同的 Form 上来显示。需要新的界面时,就来一个 Form2.Show 就可以了。 在 APP 底下,手机的资源比较有限,太多的 Form 会让手机受不了。因此,很多 FireMonkey 的开发建议里面,建议尽量少用 Form,多用 Frame。因为 Form 占用的资源比较多。 但是,在很多界面

pcplayer的博客 1080

HALCON 20.11实战:5步搞定工业图像异常检测(附完整代码)

本文提供了一份基于HALCON 20.11的工业图像异常检测实战指南。通过五个核心步骤——环境准备、数据预处理、模型训练、推理解析与工程化部署,详细演示了如何利用深度学习技术,仅使用正常样本快速构建并优化金属表面划痕等缺陷的检测模型,并附有完整可运行的HDevelop代码,助力工程师实现高效、智能的工业视觉质检。

weixin_29243279的博客 140

IOS ViewControl无法释放(不走“-(void)dealloc”方法)&&ViewControl释放后内存值不下降

首先我们来讨论一下Viewcontrol无法释放的问题最近在项目运行时发现这个内存消耗不是一般的高这里内存较高也是有原因的,因为我这里展示了一张高度有两个屏幕高度的UIImageView。 好的吧,图片比较大内存消耗高一点我也就忍了,可是我现在的问题是,在我完全退出当前显示图片的ViewControl时,竟然不走- (void)dealloc - { - //// - }这下问题就大了,我都退出

KevinQueen的专栏 9809

云计算学习——5G网络技术

华为eNSP网络设备模拟器的基础安装及简单使用

qq_42520799的博客 1445

专治疑难系列 - 解决打印机凭证冲突问题

一、问题描述 二、解决方法 三、问题已解决

Passerby_Wang的博客 2万+

vue项目,iOS端 APP内,页面跳转到二级页面后,上一页内赋值的对象没有销毁的问题

iOS端 APP内,页面跳转到二级页面后,上一页内赋值的对象没有销毁的问题

guyue_01的博客 482

VisDrone2019数据集实战:从下载到YOLO格式转换的完整指南

本文提供了一份完整的VisDrone2019数据集实战指南,详细介绍了从数据集下载、理解其独特的标注格式,到转换为YOLO模型可直接训练格式的全过程。通过清晰的代码示例和步骤讲解,帮助读者掌握处理复杂无人机视觉数据集的核心技能,为基于YOLO的目标检测模型训练做好准备。

weixin_29165725的博客 384

iOS 添加WKWebView导致控制器无法释放的问题

在WkWebView与JavaScript交互中,经常会在原生中注入MessageHandler,app中注入MessageHandler的方法 WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc] init]; config.userContentController = [WKUserCont...

dianchidu6913的博客 1137

大模型系列——一文看懂“提示词” vs “提示词工程” vs “上下文工程”

本文区分了AI领域的三个关键概念:提示词(Prompt)、提示词工程(Prompt Engineering)和上下文工程(Context Engineering)。提示词是直接输入给AI模型的指令文本;提示词工程则是系统化设计、测试和优化提示词的过程;而上下文工程是为AI构建动态上下文,提供恰当信息和工具的科学与艺术。文章通过翻译案例展示了提示词工程的迭代过程,并说明上下文工程在AI Agent中的核心作用——动态收集和组织必要信息。最后强调普通人只需掌握提示词编写,开发AI应用才需深入提示词工程,构建智能

2401_84052244的博客 750

回归预测 | MATLAB实现TCN时间卷积神经网络多输入单输出回归预测

回归预测 | MATLAB实现TCN时间卷积神经网络多输入单输出回归预测

机器学习之心的博客,关注并私信文章链接,获取对应文章源码和数据。 2492

iOS中判定delegate是否已经被释放掉

在iOS的实际开发过程中,常常会遇到内存管理的问题。有一种特别常见的ne

manlxb的专栏 2504

23、电器元件符号及封装大全(2025版本)

总计28类电器元件符号和封装。

XU157303764的博客 2655

「iOS」————自动释放池底层原理

本篇结合RunLoop,介绍了自动释放池的底层原理。对其中的流程和方法进行了分析。

2301_80253909的博客 1706

干掉百度Apollo的安装!(Apollo10.0的源码安装)

1、在Apollo10.0的安装手册中,没有再详细给出源码安装的步骤,官方更推荐的是包管理安装,但实际上Apollo10.0仍然是可以进行源码安装的。2、使用源码安装Apollo10.0,比Apollo9.0的源码安装问题要少,整个安装过程更顺畅。3、从Apollo 10.0开始,源码安装和包管理安装采用同一套编译工具,也就是aem。之前只有在进行包管理安装的时候我们才需要安装aem,现在进行源码安装也需要安装aem。

qq_40033030的博客 892

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

ios中的静态变量被释放

static变量内存释放问题 static  ios   numbbuaa 2013年03月08日提问 · 2013年03月08日更新 关注 0 关注 收藏 0 收藏,8.1k 浏览 问题对人有帮助,内容完整,我也想知道答案 0 问题没有实际价值,缺少关键内容,没有改进余地 A.m中 声明一个

2107

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

运维系列&前端系列:ios 嵌套H5页面 input 光标跑偏的问题

ios 嵌套H5页面 input 光标跑偏的问题

weixin_54626591的博客 677

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

ios键盘收起页面空白问题

开发网页的时候遇到一个非常恶心的问题,ios中,一个页面有一系列input需要填写,假设有10个,点击后面几个,弹出键盘,一般会超出页面长度的。这个时候,如果收起键盘,页面不会回弹导致底部出现空白部分,这个时候,点击页面上的一些按钮会点击不中。 我这里的一个非常蠢的办法,就是判断当input失去焦点的时候,主动滚动 let u = window.navigator.userAgent; l...

暴躁兔子的记录 1913

ios键盘弹起 body的高度拉长,页面底部空白问题。ios软键盘将页面抵到上面后,关闭软键盘页面不回弹的问题。...

js 监听ios手机键盘弹起和收起的事件 /* js 监听ios手机键盘弹起和收起的事件 */ document.body.addEventListener('focusin', () => { //软键盘弹起事件 console.log("键盘弹起"); }); document.body.addEventListener('focusout', () =>...

weixin_30856725的博客 519

vue与ios交互返回页面异常,需要滑动才能正常得问题

问题描述:在ios内嵌入H5(使用vue-cli搭建得vue框架),在A页面滚动超过一屏后,进入B页面,然后使用this.$router.back(-1)方法返回,这时候A页面会出现白屏或者部分功能渲染不正常,需要点一下页面或者滑动一下页面才会正常。...

douyiqing的博客 1836

iOS 7 之 页面布局

iOS7是目前iOS史上最颠覆的一次改版。 它的出现令人兴奋,因为它将会带我们进入一个全新的时代; 它的到来也让我们忧心,因为它颠覆了一切,包括我们过去做过的很多努力。 但是,相信大家乐意为这个全新时代做更多的努力,因为,它值得期待。   最近打算写一系列针对iOS7新特性的文章,今天就从最基本和简单的页面布局开始吧。     从头说起 当我看

Nicholastas的专栏 695

iOS页面右滑返回交互实现方案

Category: iOS   Publish Date: 2013年4月30日   Comments: 9   Views: 1287 undefinedundefinedundefinedundefinedundefinedundefinedundefinedundefined 唠叨最近 好久没有写技术日志了,上一篇日志已经是1年前写的了。 不过,我也发现,几乎全部我认识搞技

code life 1万+

uniapp禁止页面下拉刷新(Android、IOS)

uniapp禁止页面下拉刷新(Android、IOS)

皮皮的博客 7925

iOS12适配及问题记录

iOS12适配及问题记录 版本信息 Xcode: Version 10.0 beta (10L176w) macOS: 10.14 Beta (18A293u) iOS: 12.0(16A5288q) 问题及解决过程 1,StatusBar内部结构改变 现象:crash crash log: 1,-[_UIStatusBarIde...

王学森的专栏 1万+

H5页面必会遇到的问题及解决办法

前言 在我们开发H5页面的时候必会遇到一些兼容性等爬过坑的问题,在这里我将这些问题汇总一下,自己也做一下笔记 问题: 1,ios滑动不流畅 2,ios上拉边界下拉出现白色空白 3,页面件放大或缩小不确定性行为 4,click点击穿透与延迟 5,软键盘弹出将页面顶起,收起未回落问题(导致整体页面上移) 6,iphonex 底部栏适配问题 7,保存页面为图片和二维码问题和解决方案 8,微信公众号H5分...

qq_43427385的博客 2756

ios原生入门之storyboard页面绘制

IOS使用storyboard绘制页面,使用block回传数据

流星雨的博客 3005
上一篇: IOS系列——导航条UINavigationController的简单功能
下一篇: IOS系列——UIScrollview的delegate里面的方法意义
Engandend
博客等级 码龄15年 18粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值