IOS Project AppDelegate 代理

iOS 一个project使用多个target开发多版本或多应用 可以通过new-target创建,新创建target都会包含自己的appdelegate,main,storyBoard等文件,但是我们这些文件在我们多个target可以共用一样的,所以可以删除掉不需要的文件 新建一个target  “test”后,可以看到project下面就有了test 这个target  新建target “test”产生目录 阅读详情

IOS Project AppDelegate 代理

//当应用程序将要入非活动状态执行,在此期间,应用程序不接收消息或事件,比如来电话了  

1、- (void)applicationWillResignActive:(UIApplication *)application    


//当应用程序入活动状态执行,这个刚好跟上面那个方法相反 

2、- (void)applicationDidBecomeActive:(UIApplication *)application  


//当程序被推送到后台的时候调用。所以要设置后台继续运行,则在这个函数里面设置即可  

3、- (void)applicationDidEnterBackground:(UIApplication *)application  

//当程序从后台将要重新回到前台时候调用,这个刚好跟上面的那个方法相反。  

4、- (void)applicationWillEnterForeground:(UIApplication *)application  


//当程序将要退出是被调用,通常是用来保存数据和一些退出前的清理工作。这个需要要设置UIApplicationExitsOnSuspend的键值。  

5、- (void)applicationWillTerminate:(UIApplication *)application  


//iPhone设备只有有限的内存,如果为应用程序分配了太多内存操作系统会终止应用程序的运行,在终止前会执行这个方法,通常可以在这里进行内存清理工作防止程序被终止  

6、- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application  


//当系统时间发生改变时执行  

7、- (void)applicationSignificantTimeChange:(UIApplication*)application  


//当程序载入后执行  

8、- (void)applicationDidFinishLaunching:(UIApplication*)application  


//当StatusBar框将要变化时执行  

9、- (void)application:(UIApplication)application willChangeStatusBarFrame:(CGRect)newStatusBarFrame  


//当StatusBar框方向将要变化时执行  

10、- (void)application:(UIApplication*)application willChangeStatusBarOrientation:  
(UIInterfaceOrientation)newStatusBarOrientation  
duration:(NSTimeInterval)duration 
 


//当通过url执行

11、- (BOOL)application:(UIApplication*)application handleOpenURL:(NSURL*)url  


//当StatusBar框方向变化完成后执行  

12、- (void)application:(UIApplication*)application didChangeStatusBarOrientation:(UIInterfaceOrientation)oldStatusBarOrientation  


//当StatusBar框变化完成后执行 

13、- (void)application:(UIApplication*)application didChangeSetStatusBarFrame:(CGRect)oldStatusBarFrame  

iPhone中的应用程序很容易受到打扰,比如一个来电可能导致应用程序失去焦点,如果这个时候接听了电话,那么应用程序会转到后台运行。  
还有很多其它类似的事件会导致iPhone应用程序失去焦点,在应用程序失去焦点前会调用委托类的applicationWillResignActive()方法,  
而应用程序再次获取到焦点的时候会调用applicationDidBecomeActive()方法。  
比如在运行应用程序的时候锁屏会调用委托类的applicationWillResignActive()方法,而当屏幕被解锁的时候,又会调用applicationDidBecomeActive()方法。  


另外一个非常重要的方法就是applicationDidReceiveMemoryWarning(),因为iPhone设备只有有限的内存,如果为应用程序分配了太多内存操作系统会终止应用程序的运行,但在终止之前操作系统会通过先调用委托类的applicationDidReceiveMemoryWarning()方法警告应用程序,在UIApplication接收到这个事件后它会传递给委托类的applicationDidReceiveMemoryWarning()方法,委托类在这个方法内可以进行释放内存的操作以防止操作系统强制终止应用程序的运行。  
下面是这个类的一些功能:  
1.设置icon上的数字图标  
    //设置主界面icon上的数字图标,在2.0中引进, 缺省为0  
    [UIApplication sharedApplication].applicationIconBadgeNumber = 4;  
2.设置摇动手势的时候,是否支持redo,undo操作  
    //摇动手势,是否支持redo undo操作。  
   //3.0以后引进,缺省YES  
    [UIApplication sharedApplication].applicationSupportsShakeToEdit =YES;  


3.判断程序运行状态  
    //判断程序运行状态,在2.0以后引入


  1.   if([UIApplication sharedApplication].applicationState ==UIApplicationStateInactive){   
  2.        NSLog(@"程序正处于运行的状态");   
  3.    }  

4.阻止屏幕变暗进入休眠状态  
    //阻止屏幕变暗,慎重使用,缺省为no 2.0  
    [UIApplicationsharedApplication].idleTimerDisabled =YES;  
慎重使用本功能,因为非常耗电。

  
5.显示联网状态  
    //显示联网标记 2.0  
    [UIApplication sharedApplication].networkActivityIndicatorVisible =YES;  


6.在map上显示一个地址

  1. NSString* addressText =@"1 Infinite Loop, Cupertino, CA 95014";   
  2.    // URL encode the spaces   
  3.     addressText =  [addressTextstringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding];   
  4.    NSString* urlText = [NSStringstringWithFormat:@"http://maps.google.com/maps?q=%@", addressText];   
  5.        
  6.     [[UIApplication sharedApplication]openURL:[NSURLURLWithString:urlText]];   

7.发送电子邮件

  1. NSString *recipients =@"mailto:first@example.com?cc=second@example.com,third@example.com&subject=Hello from California!";   
  2.    NSString *body =@"&body=It is raining in sunny California!";   
  3.        
  4.     NSString *email = [NSStringstringWithFormat:@"%@%@", recipients, body];   
  5.     email = [emailstringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];   
  6.        
  7.     [[UIApplication sharedApplication]openURL:[NSURLURLWithString:email]];   

8.打电话到一个号码  

    [[UIApplication sharedApplication]openURL:[NSURLURLWithString:@"tel://10086"]];  


9.发送短信 
    [[UIApplication sharedApplication]openURL:[NSURLURLWithString:@"sms://10010"]];  


10.打开一个网址  
    [[UIApplication sharedApplication]openURL:[NSURLURLWithString:@"http://www.youkuaiyun.com"]];  

UIApplication:一般是指运行中的应用程序,它的一个主要工作是处理用户事件,它会引起一个队列,所有的用户事件都放入到队列中,  
逐个被处理掉,在处理的时候,它会发送事件到一个合适的处理事件的目标控件,此外,UIApplication还维护在本应用程序中打开的  
Window列表(UIWindow实例),这样子它就可以接触应用程序中的任何一个UIView对象;  
AppDelegate:负责为另外一个对象处理特定事件的类,比如我们load完一个页面的时候,委托就帮助UIApplication完成  
didFinishLaunchingWithOptions动作,相应地在这个方法里面执行对应地action;  
委托是给一个对象提供机会对另一个对象中的变化作出反映或者影响另一个对象的行为,通常包括3种动词:should、will、did  

UIApplication委托AppDelegate,则AppDelegate必须得实现UIApplicationDelegate协议,这个协议我们可以当成是java中的一个接口,  
协议中定义了一系列方法,我们必须在子类中将其实现,然后底层UIApplication会自动去调用我们已经定义好的方法,这有点类似java中Ioc方向控制机制  
当然,iphone中运用委托设计模式的地方很多,比如这个UIActionSheetDelegate、UIAlertViewDelegate协议,比如我们要在自己的某个界面中展示  
这个操作表(UIActionSheet),则我们的视图控制器必须要实现这个UIActionSheetDelegate协议,重写其中的某些方法,也就是说,谁被委托了,  
谁就要实现协议中定义的方法,确保正常的调用


随着IOS的升级,OC中的代理方法也逐渐增多,当然也有代理方法被抛弃(可用,只是不推荐使用),怎么看这些代理方法支持的版本呢?

方法(图文):

进入代理中;

看支持的版本;


Flutter+iOS平台第三方登录集成实战指南 第三方登录是现代移动应用提升用户注册转化率的关键技术,通过OAuth等协议实现用户身份验证。其核心原理是利用各平台提供的SDK获取访问令牌,实现免密登录。在Flutter跨平台开发中,虽然UI层可以统一,但iOS平台因严格的隐私政策需要特殊处理。本文以Line、Google和Facebook登录为例,详解SDK集成、权限配置和错误处理方案,特别适合需要同时支持东亚和欧美市场的商业化应用。通过预加载策略和Token自动刷新等优化手段,可显著提升登录成功率和用户体验。 阅读详情

相关推荐

iOS应用加固与混淆实战:从原理到工程实践

在移动应用开发领域,代码保护是保障应用安全与商业利益的核心环节。其基本原理在于通过技术手段增加逆向工程的难度,从而保护知识产权、防止核心逻辑泄露与接口滥用。从技术价值看,有效的代码保护不仅能防范抄袭和收入损失,更是应对安全合规要求的关键。具体到iOS平台,这通常通过一套组合技术实现,包括代码混淆、运行时保护及环境检测等。代码混淆作为静态保护的核心,通过符号重命名、控制流平坦化和字符串加密,使反编译后的代码难以理解;而加固则提供了动态防御,如反调试、反注入和完整性校验,共同构成纵深防御体系。在实际应用场景中,

cunfuxiao7305的博客 479

iOS Appdelegate代理方法说明和触发条件

From:http://snowyshell.blog.163.com/blog/static/2209140342013917112731789/ 1.- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  

caizhongtao的专栏 2110

Objective-C入门指南:从环境搭建到实战项目开发

面向对象编程是现代软件开发的核心范式之一,它通过封装、继承和多态等机制组织代码,提升可维护性和复用性。在iOS/macOS生态中,Objective-C作为基于C语言的面向对象语言,其独特的消息传递机制和动态运行时特性,为理解Cocoa Touch框架的底层原理提供了关键视角。掌握Objective-C不仅能帮助开发者深入理解iOS系统框架的设计哲学,还能有效维护和迭代大量存量项目代码,尤其是在处理内存管理、与C/C++库桥接以及调试经典崩溃场景时具有不可替代的价值。对于希望夯实iOS开发基础、进入中大型团

weixin_30580341的博客 318

iOS代理不回调的6种原因

关于代理不回调问题, 以下按照脑残级别排序: > 1. 没有设置代理 XXX.delegate = self 2. 方法名写错 3. 新方法得判断iOS版本 4. 引用对象被释放了 5. 具体功能info.plist配置错误 6. 在block中设置有时会出现代理不回调问题(用通知代替) 错误1,2 :对于错误1,2

soindy 8100

Apple Intelligence深度解析:设备端AI与隐私优先的系统级智能

智能系统正从云端模型调用转向设备端可信执行,其核心在于如何在保障隐私前提下实现自然语言理解、内容生成与跨应用意图协同。Apple Intelligence并非独立框架,而是融合Core ML设备推理、NaturalLanguage语义图谱与SiriKit意图代理的三层系统能力,强调数据不出设备、私密云计算可审计、系统级API无缝集成。它代表了生成式AI落地的新范式——不拼参数规模,而重权限控制、沙盒隔离与优雅降级机制。开发者需关注on-device intelligence和IntelligenceSand

weixin_30267785的博客 463

Cursor实战手记:187天零幻觉AI编程工作流

AI编程助手正从代码补全工具演进为深度嵌入开发全链路的认知协作者。其核心原理在于上下文感知引擎与本地化模型协同,通过精准理解函数签名、跨文件依赖和业务语义,实现低幻觉的代码生成与修复。技术价值体现在显著降低认知负荷——将开发者从语法记忆、文档检索和边界条件枚举中释放,转向更高阶的逻辑判断与架构决策。典型应用场景包括遗留系统调试、合规基础设施编码、多语言类型推导及闭源SDK逆向分析。本文基于187天真实生产数据,聚焦Cursor AI在真实工作流中的零幻觉落地能力,涵盖Java MyBatis漏洞修复、Pyt

weixin_34166847的博客 371

IOS开发 - AppDelegate的代理方法

[size=medium][color=red] 1. [url=http://cwlong.iteye.com/admin/blogs/2236795]Info.plist和pch文件的作用[/url] 2. [url=http://cwlong.iteye.com/blog/2236809]UIApplication的常见使用[/url] 3. [url=http://cw...

码农的路 444

手把手教你搞定Pattern Recognition期刊的LaTeX投稿(附完整模板下载与避坑指南)

本文详细指导如何在Pattern Recognition期刊上使用LaTeX进行投稿,包括模板下载、环境配置、核心排版规范及投稿材料准备。特别强调期刊对格式的严格要求,如数学符号、图像引用等细节,并提供实用技巧和避坑指南,帮助作者高效完成投稿流程。

weixin_30876945的博客 395

IOS项目中AppDelegate详解

AppDelegate.m文件  1、- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions  说明:当应用程序启动时执行,应用程序启动入口。只在应用程序启动时执行一次。application参数用来获取应用程序的状态、变量等

GG_8080的专栏 715

Trae编程工具Cline插件深度集成与Claude 3.7 API Key高级配置实战

本文详细介绍了如何在Trae编程工具中深度集成Cline插件并配置Claude 3.7 API Key的高级技巧。通过实战案例,展示了如何提升代码补全质量、实现多轮对话记忆及自定义代理设置,特别适合全栈工程师和需要私有化AI服务的团队。文章还涵盖了安装流程、API Key获取方式及企业级部署的最佳实践。

weixin_28829903的博客 436

瑞芯微RK3506开发板DSM音频开发避坑指南:从硬件改接到内核配置全流程

本文详细解析了在瑞芯微RK3506开发板上进行DSM音频开发的完整流程与关键避坑点。内容涵盖从硬件改造(如电阻焊接)、内核驱动配置(DTS参数、补丁应用)到系统调试与波形分析的全过程,旨在帮助嵌入式开发者高效实现高信噪比、低成本的音频方案,避免常见错误。

weixin_29164091的博客 408

flutter_boost 3.0 集成到已有项目Android和IOS

flutter_boost3.0 集成到已有native项目,并实现flutter到native之间的切换

yinianjian2017的博客 826

WINCC8.1工业组态软件安装与授权配置指南

SCADA系统作为工业自动化控制的核心平台,通过实时数据采集与监控实现生产流程可视化。WINCC作为西门子旗舰级组态软件,其8.1版本凭借稳定的运行时环境在汽车制造、流程工业等领域广泛应用。本文从工业控制系统软件安装规范切入,重点解析WINCC8.1与Automation License Manager的协同工作原理,详细说明包括系统环境检查、安装包校验、授权文件配置等关键技术环节。针对工程实施中常见的内存配置不足、授权管理器报错等典型问题,提供经过现场验证的解决方案,特别适用于需要进行产线监控系统升级维护

cqwf95925的博客 1656

XXShield实战:5步解决KVO和Notification导致的iOS应用崩溃问题

你是否曾经遇到过iOS应用突然崩溃,而崩溃日志却指向了KVO(键值观察)或NSNotification(通知)相关的代码?😱 在iOS开发中,KVO和NSNotification是两种常用的观察者模式实现方式,但它们也是导致应用崩溃的常见元凶。今天,我将为你介绍如何使用**XXShield**这个强大的iOS防崩溃库,通过5个简单步骤彻底解决这些问题!🚀 **XXShield**是一个专业的

gitblog_00786的博客 326

【Unity实战】实现最完美最简单的UI适配方案,背景压缩或者拉伸变形解决方案,手机刘海屏适配,适配不同分辨率,不同尺寸,不同设备。

这期来讲一个简单的UI设计方案,很多同学可能搞不懂锚点、轴心这些概念,导致做好的UI在别人的设备上,乱跑或者是重叠,或者是参加游戏老发时间比较紧来不及做适配,都可以来试试这个方法,通过填充边框来保持游戏画面的原始比例,所以它的缺点也很明显,在一些移动设备上会浪费比较大的显示面积。 unity不同设备UI变形? UI在不同设备上如何适配?

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 3652

2026年3月GESP真题及题解(C++七级):物流网络

2026年3月GESP真题及题解(C++七级):物流网络

王老师青少年编程 1126

XXShield深度解析:如何实现iOS应用7大常见崩溃防护的完整指南

在iOS应用开发中,崩溃(Crash)是开发者最头疼的问题之一。XXShield作为一个强大的iOS运行时防崩溃库,能够有效防止7种常见崩溃类型,显著提升应用稳定性。本文将为您提供XXShield的完整使用指南,帮助您快速掌握这一iOS崩溃防护神器。 ## 📱 XXShield是什么? XXShield是一个Objective-C编写的iOS运行时防崩溃库,它通过方法交换(Method Sw

gitblog_00008的博客 332

YOLOv8剪枝 稀疏训练+slim剪枝测试精度仅掉1.6个点,速度提高10.3fps!

摘要 本文介绍了YOLOv8剪枝方法Slim(Network Slimming),通过L1正则化作用于BN层的缩放因子(γ),自动识别并剪除冗余通道,实现模型轻量化。核心步骤包括:稀疏训练(引入L1正则化)、通道剪枝(按γ阈值裁剪)、微调恢复精度。实验表明,该方法能有效压缩模型大小、减少计算量,且支持通过调整speed_up等超参数控制剪枝强度。移植代码需修改C2F模块以适配剪枝,并配置稀疏训练参数(如reg、sl_epochs)。最终剪枝模型需移除优化器以减小体积,但不支持多卡训练。

FJN110的博客 861

iOS防Crash神器XXShield:10分钟快速上手,让你的APP稳定性提升80% [特殊字符]

还在为iOS应用频繁闪退而烦恼吗?XXShield是一款强大的Objective-C防崩溃库,专为提升iOS应用稳定性而生!这款开源工具能够有效拦截常见的崩溃场景,让你的应用告别闪退困扰,稳定性提升高达80%! ## 为什么选择XXShield?✨ 在移动应用开发中,崩溃率是衡量应用质量的重要指标。每次崩溃都可能导致用户流失、评分下降甚至业务损失。XXShield通过智能的运行时防护机制,在应

gitblog_00729的博客 808

【RV1126/RV1109学习笔记】#基础篇#(2)基础入门使用

一、调试方式 1、串口调试 2、ADB调试 3、网络调试 二、基础外设使用 音频使用(aplay,arecord,amixer) 三、WIFI连接 四、屏幕背光控制

丨晋丨 1862

pscad IEEE标准系统搭建说明

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

swift5.0 iOS配置微信openSDK1.8.6

参考微信官方文档:https://developers.weixin.qq.com/doc/oplatform/Mobile_App/Access_Guide/iOS.html 一、配置Universal Links,参考链接 二、搭建开发环境 podWechatOpenSDK插件 pod 'WechatOpenSDK' “TARGETS”一栏,在“info”标签栏的“URL t...

qq_35025830的博客 2046

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

UI 视图编程入门

IOS项目的文件的简单介绍: APP

fountainzkw的专栏 471

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

UIKit-cross-platform 常见编译错误与解决方案:新手排错完全手册

UIKit-cross-platform 是一个用 Swift 实现的跨平台 UIKit 框架,目标是把 iOS 的 UIKit 代码直接运行在 Android 上,实现"一套代码、双端原生体验"。对新手来说,第一次编译 UIKit-cross-platform 时,往往会被一连串报错劝退:`externalNativeBuildDebug FAILED`、`ninja: error` 找不到 S

gitblog_00049的博客 309

10 个 UIKit-cross-platform 核心概念:跨平台 Swift UI 开发入门必读

UIKit-cross-platform 是一个用 Swift 语言实现的跨平台 UI 框架,它让原本只能运行在 iOS 上的 UIKit 代码,能够原样跑在 Android 设备上。作为跨平台 Swift UI 开发的新手,你不需要为 Android 重写界面,也不用引入 React Native 这类牺牲性能的方案——这套框架同时保留了原生性能和"只写一遍"的开发效率。下面这 10 个核心概念

gitblog_01077的博客 359

KMP新默认项目结构:从Gradle模块到Kotlin语义的范式升级

Kotlin Multiplatform(KMP)作为跨平台开发的核心技术,其项目结构正经历从Gradle DSL驱动向Kotlin原生语义建模的根本性演进。这一转变源于对多平台可维护性、协作一致性和长期演进能力的深层需求,核心原理是将平台目标、依赖策略与构建配置统一收口至声明式`module.yaml`,实现意图优先、平台显式、组合驱动的设计范式。技术价值体现在构建性能提升22%、IDE代码导航准确率跃升至96%、CI配置缩减73%,并显著降低Android/iOS双端协同中的幽灵错误与版本冲突。典型应用

weixin_30294295的博客 442

Cocos2d-x 4.0 Windows开发环境搭建与CocosUI入门实战

游戏开发中,UI系统是连接玩家与游戏世界的核心交互层,其实现原理基于事件驱动与渲染管线。在跨平台游戏引擎领域,Cocos2d-x凭借其稳定的核心架构与高效的C++实现,为开发者提供了坚实的底层支持。其官方UI解决方案CocosUI,深度集成于引擎渲染框架,通过组件化设计简化了按钮、文本、图片等基础元素的创建与管理,技术价值在于为2D游戏提供了稳定、高性能的界面开发体验。在Windows桌面平台的应用场景中,从环境配置到项目构建,再到UI集成,形成了一套完整的开发工作流。本文聚焦于Cocos2d-x 4.0在

weixin_34238633的博客 406
上一篇: EJB是基于哪些技术实现的?并说出SessionBean和EntityBean的区别,StatefulBean和StatelessBean的区别。
下一篇: IOS设备中进行抓包【转载】备用
dev-kevin
博客等级 码龄16年 3粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值