iOS5编程 -- main函数研究

iOS游戏逆向分析:UE4Dumper工具原理与实战指南 在iOS游戏开发与安全研究领域,内存数据提取是一项关键技术,它涉及对运行中进程的深度访问与分析。其核心原理是通过系统级API或越狱环境提供的接口,安全地读取目标进程的内存空间,定位并解析特定的数据结构。这项技术的价值在于能够揭示应用的内部运行机制,为性能优化、安全审计和功能扩展提供底层支持。在游戏逆向工程中,它常用于分析游戏引擎的对象模型和运行时状态。以虚幻引擎4(UE4)为例,其UObject/UClass体系在内存中有固定的布局模式,通过解析GUObjectArray和GNames等全局变量,可以提取出 阅读详情

Xcode4.2之前的main函数如下:

int main(int argc, char *argv[])

{

    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

    int retVal = UIApplicationMain(argc, argv, nil, nil);

    [pool release];

    return retVal;

}


Xcode4.2工程中的主函数为

int main(int argc, char *argv[])

{

    @autoreleasepool {

        return UIApplicationMain(argc, argv, nil, NSStringFromClass([TCAppDelegate class]));

    }

}

可以看出一个重要的变化是在4.2使用了ARC技术后,NSAutoreleasePool被废弃,改用@autoreleasepool,这里请不要该回原先的方式,如果改变后,在开启ARC选项后,程序将不能通过编译。

不论那个版本,UIApplicationMain函数都是程序的关键点,下面是对这个函数的分析:

UIApplicationMain()函数是初始化程序的核心,它接受4个参数。其中argc和argv两个参数来自于main()接受的两个参数;另外两个String型参数分别表示程序的主要类(principal class)和代理类(delegate class)。如果主要类(principal class)为nil,则默认为UIApplication;如果代理类(delegate class)为nil,则程序假设程序的代理来自Main nib文件。如果这两个参数任意一个不为nil,则UIApplicationMain()函数则会根据参数创建相应的功能类。因此,如果程序中使用自定义的UIApplication类的子类(不建议继承UIApplication类建立自定义的子类),你需要将你的自定义类名作为第3个参数传进来。

根据上面的分析,我们来看以下iOS程序的声明周期


对于UIApplicationMain函数中的第四个参数,我们也可以看出新旧版本的不同,我们建议在原先的工程中使用新的版本,以提高程序的速度,共修改如下几处

假如你的工程类都是以TC开头。

1.import你的appdelegate类,并修改第四个参数如下:

UIApplicationMain(argc, argv, nil, NSStringFromClass([TCAppDelegate class]));

2.删除MainWindow.xib文件

3.在工程的Info.plist文件中删除下面一行


4.在TCAppDelegate.m文件中,修改

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions函数,如下:


    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    // Override point for customization after application launch.

    self.viewController = [[TCViewController alloc] initWithNibName:@"TCViewController" bundle:nil];


    self.window.rootViewController = self.viewController;

    [self.window makeKeyAndVisible];

    return YES;

其中加粗部分为新增部分。

经过上面的修改,我们就可以在程序load的过程中,省去加载MainWindow.xib文件,提高程序的速度。



main函数之前和main之后都做了那些事情 一个c程序在执行main函数之前和main之后都做了那些事情啊 立即下载

相关推荐

LSTM 怎么进行二维数据的输入呢

尽管LSTM并不天然地适用于处理图像、视频等二维数据,但通过时间序列化、卷积特征提取和双向LSTM等方法,我们可以将二维数据转化为适合LSTM输入的形式,从而利用LSTM的强大记忆能力和长期依赖学习能力对二维数据进行建模。未来的研究方向可以考虑将LSTM与其他模型结合,例如将LSTM与卷积神经网络(Convolutional Neural Network, CNN)结合,利用CNN提取图像的空间特征,然后利用LSTM学习时间序列的长期依赖;

xiamu_CDA的博客 1037

UIApplicationMain方法简介

在IOS程序的main函数中执行了一个UIApplicationMain这个函数,下面介绍以下这个函数的作用。 int UIApplicationMain(int argc, char *argv[], NSString *principalClassName, NSString *delegateClassName); argc、argv:直接传递给UIApp

u014656271的专栏 1535

Python实战:5分钟搞定固定翼无人机三自由度仿真(附完整代码)

本文提供了一个基于Python的固定翼无人机三自由度仿真快速实现方案。通过面向对象设计,封装了核心运动学模型,并对比了欧拉法与龙格-库塔法两种积分方法。文章附有完整实例代码,帮助算法工程师和研究人员在5分钟内搭建轻量级仿真环境,用于快速验证控制律、路径规划等核心算法逻辑。

docker7nomad的博客 748

【iOS开发进阶】-内存管理

1.内存管理模型 对于面向过程的C语言而言,其设计的内存管理方式十分直接,内存的申请和释放都由开发者手动处理。这种管理方式简单,但是会大量增加编码过程中的工作量,也会增加代码的复杂度。 在面向对象语言中,内存管理通常会由模型机制来完成,常见的有垃圾回收与引用计数两种内存管理模型。Java中的JVM使用的就是垃圾回收管理模型,而Objective-C语言采用的是引用计数的内存管理模型。 在iOS程序中,内存通常被分成5个区域: 栈区:存储局部变量,在作用域结束后内存会被回收 堆区:存储O

qq_41843697的博客 421

AlphaPose复现配置教程

AlphaPose是一种准确的多人姿态估计器,这是第一个在COCO数据集上达到70+ mAP (75 mAP)和在MPII数据集上达到80+ mAP (82.1 mAP)的开源系统。为了匹配跨帧的同一人的姿态,我们还提供了一种高效的在线姿态跟踪器,称为Pose Flow。这是第一个在PoseTrack挑战数据集上达到60+ mAP (66.5 mAP)和50+ MOTA (58.3 MOTA)的开源在线姿态跟踪器。AlphaPose支持Linux和Windows操作系统!指路👉。

m0_56661101的博客 4527

【CTFSHOW】web入门 黑盒测试

文章目录写在前面web380web381web382web383web384web385web386web387web388web389web390web391web392web393web394web395参考资料 写在前面 一直没搞过渗透,先学学黑盒测试吧 web380 进入题目发现是一个关于灯泡的悲伤故事,点进去,看到跳转到page_1.php页面。 我们访问page.php试试: 发现报错:$id.php,可以猜想需要传名称为id的参数,来访问id.php。我们访问page.php?id=1试试

7ruth0hn的博客 1897

xcode 程序入口

使用XCode开发iOS设备上的应用程序,它也会帮你生成好很多源文件和资源,你什么都不用改,就可以编译运行,从main函数开始,到应用程序启动,都发生了什么呢?XCode生成的项目中,会包含一个非常简单的main.m文件,里面的代码简单而单纯(苹果推荐你不要做任何的变更): Demo1: 指定入口类 int main(int argc, char *argv[]) {

LVXIANGAN的专栏 7010

DeepSeek-R1 论文阅读 DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning

和。这些模型的核心创新点是通过强化学习(Reinforcement Learning, RL)来提升大型语言模型(LLM)的推理能力,而没有依赖传统的监督微调(Supervised Fine-Tuning, SFT)作为预训练的步骤。是一种通过大规模强化学习直接训练的模型。它在推理能力上表现出色,能够自然地展现出许多强大且有趣的推理行为。但它也有一些问题,比如可读性差和语言混合。这意味着模型在生成文本时,有时会显得不太清晰,或者不一致地使用不同语言。为了解决这些问题并进一步提升推理能力,研究者提出了。

CSPhD-winston的博客 1839

Xcode执行项目整理——main方法简单笔记

Xcode中   程序入口为Supporting Files(以前的版本好像不叫这个)下 main.m,main.m文件中只有一个方法 mian (C语言函数) 如下所示 仅供了解,main和UIApplicationMain方法中的参数不应当修改。 其实目前觉得跟开发没什么关系。 int main(int argc, char * argv[]) {  

buDongNull的博客 2126

基于多头注意力时间卷积网络(MATCN)的虚拟电厂短期功率预测模型

​时空特征解耦​:TCN负责时间模式,注意力捕捉空间关联​动态门控机制​:自适应调整两种特征的融合比例​多尺度感知​:膨胀卷积覆盖5分钟到24小时的时间跨度​轻量化设计​:参数量比传统Transformer减少52%

hasakie的博客 322

智能手表 BOM 表与版本管理记录

试产与量产阶段 智能手表 BOM 表与版本管理记录

hoony123的博客 1053

iOS5编程--官方例子代码的研究

iOS5编程--官方例子代码的研究--2.UICatalog-3http://www.1000phone.net/thread-7922-1-2.html iOS5编程--官方例子代码的研究--2.UICatalog-4 http://www.1000phone.net/thread-7923-1-2.html iOS5编程--官方例子代码的研究--2.UICatalog-5  h

tj8246965的专栏 276

《Autosar_BSW高阶配置》总目录_培训教程持续更新中...

目录 一、Autosar COM Module 二、Autosar BswM Module 三、Autosar EcuM Module 四、Autosar DCM Module 五、Autosar DEM Module 六、其它Module陆续推出 欢迎大家订阅《Autosar_BSW高阶配置》专栏(可以理解为是Autosar培训教程),该专栏每周至少更新一篇,一次订阅,不再二次收费,献上常用的案例和配置方法。下方整理了相关博文的链接(单击蓝色字体即可跳转),方便大家获取。 本专栏...

「汽车电子助手」的博客 4万+

iOS5编程--UIApplication深入研究

很多时候,我们不需要关心这个类,我们很少继承这个类,偶尔会调用这个类的api来实现一些功能,但是不可否认,这个类是iOS编程中很重要的一个概念,所以我这里写这个文章来总结以下这个类的信息,如果写的不对的地方,请留言,多谢。 UIApplication的核心作用是提供了iOS程序运行期间的控制和协作工作。 每一个程序在运行期必须有且仅有一个UIApplication(或则其子类)的一个实例。回想

Mamong's blog 818

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

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

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Note_Master-Detail Application(iOS template)_03_main.m

//main.m #import <UIKit/UIKit.h>//UIKitk框架提供一系列的Class(类)来建立和管理iPhone OS应用程序的用户界面( UI )接口、应用程序对象、事件控制、绘图模型、窗口、视图和用于控制触摸屏等的接口 #import "YJYAppDelegate.h" int main(int argc, char *arg...

dianxinxi3996的博客 105

假人有限元模型

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

ios并发编程的总结

最近这段时间,花了很多精力,仔细的学习了ios并发编程相关的内容,对并发编程的理解有了更深刻、全面的认识,现做一个简单的总结。 一,ios中实现并发有哪几种方式?  GCD,NSQueueOperation,NSTimer,NSThread。 二,上面四种实现方式,具体是有哪些常用的接口及注意事项: 1,GCD   dispatch_queue_t  currentQueue =

lvmaker的专栏 1517

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

UIApplication深入研究

很多时候,我们不需要关心这个类,我们很少继承这个类,偶尔会调用这个类的api来实现一些功能,但是不可否认,这个类是iOS编程中很重要的一个概念,所以我这里写这个文章来总结以下这个类的信息,如果写的不对的地方,请留言,多谢。 UIApplication的核心作用是提供了iOS程序运行期间的控制和协作工作。 每一个程序在运行期必须有且仅有一个UIApplication(或则其子类)的一个实例。回想

Lee'S 专栏 595

palera1n:突破性的iOS 15+越狱终极解决方案

你是否曾梦想过完全掌控你的iPhone,突破苹果设定的限制,释放设备的全部潜力?今天,这个梦想通过**palera1n**——一款革命性的iOS 15+越狱工具——变成了现实。palera1n不仅是一个越狱工具,更是一把开启iOS设备无限可能的钥匙,为技术爱好者和开发者提供了前所未有的设备控制权。 --- ## 什么是palera1n?为什么它如此重要? palera1n是一款专为A8至A1

gitblog_00300的博客 846

京东校招iOS笔试题复盘:高频考点、内存管理与手写编程题全解析

在iOS开发岗位的校招笔试中,除了考察Objective-C基础语法,更看重对内存管理、多线程、Runtime等底层机制的理解。以京东2019校招笔试为例,试卷围绕Block循环引用、GCD队列特性、Runloop模式切换等高频考点展开,要求开发者不仅会调用API,还能解释其原理与陷阱。编程题则聚焦链表反转、数组去重等基本功,考察手写代码的规范性与边界处理能力。从基础语言到系统机制,再到组件化与工程化实践,系统掌握这些核心技术点,能够帮助求职者更从容地应对大厂笔试与后续面试。本文结合真题复盘与工程经验,梳理

weixin_34015336的博客 410

5分钟搞定iOS Safari脚本管理:Stay终极指南让你告别网页限制

还在为iOS Safari的功能限制而烦恼吗?每次浏览网页时,你是否都希望有更多自定义功能?或者想要像桌面浏览器一样安装各种实用脚本?今天,我要向你介绍Stay——这款专为iOS/iPadOS Safari设计的终极用户脚本管理器,让你在iPhone和iPad上也能享受完整的脚本管理体验。无论你是想屏蔽广告、优化网页布局,还是添加个性化功能,Stay都能帮你轻松实现。简单三步设置,快速导入脚本,智

gitblog_00973的博客 537
上一篇: iOS5编程--ARC在工程上的相关设置
下一篇: iOS5编程--下载帮助到本机
NickTang
博客等级 码龄24年 261粉丝 49原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值