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

AutoDock Vina 对接计算(大批量)

AutoDock Vina是一种用于计算生物分子之间相互作用的计算工具,主要用于蛋白质和小分子(通常是潜在药物分子)之间的对接研究。它可以用于虚拟筛选、药物设计和生物分子结合位点的预测等多个应用领域。

MurphyStar的博客 1万+

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

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

KevinQueen的专栏 9809

从Chiplet到UCIE:D2D互联技术如何重塑半导体设计生态

本文探讨了D2D互联技术在半导体设计中的革命性作用,从Chiplet到UCIE标准的演进如何重塑行业生态。详细分析了D2D互联的技术本质、架构选择及UCIE标准带来的变革,并展望了未来光学D2D和3D集成等趋势。高速互联接口技术的突破为AI加速器和计算芯片提供了更高带宽和能效。

weixin_29292535的博客 931

samba源码编译安装(版本4.13.0)

这里写目录标题前言编译安装samba下载三个包安装依赖共需要安装samba、gnutls、nettle1、进入解压后的samba目录执行:2、进入解压后的gnutls目录执行3、进入解压后的nettle目录执行3.1 卸载已存在nettle3.2 编译3.3 make3.4 安装4、进入gnutls继续编译4.1 编译4.2 make4.3 安装5、再次进入解压后的samba目录5.1 执行./configure5.2 make5.3 samba安装启动samba 前言 一般来说,安装samba最快的方式应

灵葱的博客 1万+

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

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

guyue_01的博客 482

用朴素贝叶斯分类模型判断病人是否感染幽门螺杆菌(Python实现)

朴素贝叶斯,Python

weixin_56529327的博客 1160

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

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

dianchidu6913的博客 1137

一文吃透 SAP HANA Service Broker:原理、架构与落地实践

摘要:SAP HANA Service Broker 作为云原生开发的关键组件,通过标准化流程管理 HDI 容器与服务实例的生命周期,实现数据库资源的自动化配置与安全隔离。它采用服务目录、服务计划和绑定机制,将连接凭据注入应用环境变量,避免硬编码风险。在实际应用中,需根据模块生命周期决定共享或隔离容器,并通过跨容器访问模式实现安全数据共享。典型案例展示了电商平台的多模块协同与SaaS租户隔离场景,验证了其在提升运维效率与安全合规方面的价值。最佳实践强调以生命周期划边界、最小权限原则和HTTPS安全传输,为企

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 225

医疗AI知识库更新慢?提示工程架构师用Agentic AI自动更新的策略

我们的目标是用Agentic AI替代传统更新流程中的“重复劳动”,让医疗知识库(以知识图谱为例)能自动跟踪最新医学进展,把“更新周期从数月缩短到数天”。从PubMed/指南数据库自动抓取新文献;用提示工程从文本中提取结构化医学知识;自动校验新知识与旧知识的冲突;将通过校验的知识写入知识图谱。拆问题:先讲医疗知识库更新慢的3大根源;给方案:用Agentic AI设计4个“小助手”解决问题;讲原理:每个小助手的工作逻辑+提示工程技巧;做实战。

AI 原生应用开发的博客 1061

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

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

manlxb的专栏 2504

使用 MATLAB/Simulink 对一个开关磁阻电机进行建模

*开关磁阻电机(Switched Reluctance Motor, SRM)**是一种新型的无刷电机,以其简单的机械结构、宽广的调速范围和较高的效率在工业应用中得到了广泛关注。SRM的独特之处在于其定子和转子均为凸极结构,并且通过改变绕组电流的方向来实现转矩的产生和控制。本教程将详细介绍如何使用对一个开关磁阻电机进行建模,并探讨其基本控制策略,特别是针对双凸极结构的SRM。本文介绍了如何使用构建一个开关磁阻电机的双凸极结构模型,并探讨了其基本控制策略。

amy_mhd的博客 203

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

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

2301_80253909的博客 1706

如何合理评估信号过孔的残桩效应--Via Stub

设计中,之所以会去考察信号过孔的残桩效应(Via Stub),是因为它的存在导致了不需要的频率谐振,当这些谐振出现在所关注的信号通道的插入损耗中时,就会引发较为严重的信号完整性(SI)问题,那么Via Stub到底是如何引发SI问题的呢?

一只豌豆象的博客 4466

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

ios中的静态变量被释放

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

2107

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

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

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

weixin_54626591的博客 677

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

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、付费专栏及课程。

余额充值