首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

xcode11新增SceneDelegate文件

好久之前跟新到Xcode11,跟新完成后打开以前老项目并未有什么太大变化,也就没有在意,今天新建一个项目,创建完成后,发现多了个SceneDelegate.m.h文件,这是什么鬼?它有什么用呢?...新创建项目目录 AppDelegateSceneDelegate是iPadOS带来多窗口支持结果,并且有效地将应用程序委托工作分成两部分。...原来在iOS13中,AppDelegate文件结构发生了变化: iOS13以前:AppDelegate处理App生命周期UI生命周期; iOS13以后:处理 App 生命周期 Scene...Session 生命周期,在AppDelegate.h文件中没有了window属性,而是在SceneDelegate中,可见AppDelegate不管理window而是交给SceneDelegate。...适配 场景一:不需要支持多个scene,需要兼容iOS13以下,按以往Appdelegate管理window方式适配: 打开info.plist文件,删除Application Scene Manifest

1.9K21

iPadOS上启动黑屏翻车问题分析(二)

时代--支持多窗口模式 在升级到iOS 13之后系统开始支持多窗口这个尤其是在iPadOS上尤为显著,这样你可以同时在一个设备屏幕上同时享受到至少两个App视图内容… AppDelegate...对App管理权限转移 我们提到之前iOS App是基于单视窗而我们在开发中也是默认情况下不去而外去添加新window,因此在这种情况下我们APPDelegate就成了整个App生命周期管理者啦...OC项目配置 从plist配置来看的话,我们需要新建一个类来作为WindowScene代理载体 ②对APPDelegate修改 OC版本 -(UISceneConfiguration *)application...可知这个会在iOS13才会调用,我们做好版本兼容即可 ③ 新建SceneDelegate载体 OC版本 ?...Scene来进行初化,而Scene变化为称为Respender子类可以响应事件而不再是之前那个单纯UIScene 在这个为了对以前代码支持我们依然给AppDelegate一个window,但是这个已经不是之前项目那个

1.9K10

iOS 新创建项目中SceneDelegate适配

翻译解释: 在iOS 13(及以后版本)上,SceneDelegate将负责AppDelegate某些功能。 最重要是,window(窗口)概念已被scene(场景)概念所代替。...一个应用程序可以具有不止一个场景,而一个场景现在可以作为您应用程序用户界面内容载体(背景)。...Xcode 11新创建项目涉及到SceneDelegate地方如下: AppDelegate类中两个“scene sessions”方法:application(:configurationForConnecting...:options:) application(:didDiscardSceneSessions:) 一个SceneDelegate类,其中包括生命周期事件,例如active,resigndisconnect...Info.plist文件中提供了”Application Scene Manifest“配置项,用于配置App场景,包括它们场景配置名,delegate类名storyboard入口 那不需要SceneDelegate

2.7K21

iOS性能优化之启动优化

所以在运行时,dyld加载共享缓存,加载链接动态库之后,进行binding操作,重新绑定外部符号 ObjC setup time:注册OC类耗时 注册OC类过程,读取二进制data段找到OC相关信息...应用启动时,系统会生成类分类两张表,OC类分类注册,会插入到这两张表中,所以会造成一定时间消耗 这部分时间很难优化,除非减少项目中类分类定义 减少类所属分类load方法使用,让类以懒加载方式加载...Server 2008、Windows 7、Windows Vista、Windows Server 2008 R2,默认情况下启用ASLR,但它仅适用于动态链接可执行文件 Mac OS X:Apple...File,设置为YES 编译项目,来到工程Build目录下,找到LinkMap文件 LinkMap文件,保存了项目在编译链接符号顺序,以方法/函数为单位排列 # Symbols: #...load方法在viewDidLoad方法之前,LinkMap文件中顺序一致 所以,按照默认配置,在应用启动时,会加载到大量启动时无关代码,导致Page Fault次数增长,影响启动时间。

1.7K11

Clang代码覆盖率检测(插桩技术)

但代码覆盖率检测功能并不仅仅只能应用二进制重排,其本质是对于函数级、基本块级或代码边缘级插入回调,我们可以基于这一原理更灵活实现所需要功能。 1....直接运行代码,控制台输出如下: INIT Count: 14 main -[AppDelegate application:didFinishLaunchingWithOptions:] -[SceneDelegate...sceneWillEnterForeground:] -[SceneDelegate sceneDidBecomeActive:] 有时候并非所有的代码块都需要插桩,例如做二进制重排时,只需要方法函数插桩...不同级别的检测 前面我们介绍编译模式,会对函数,Block逻辑代码块进行检测,有时候我们不需要这个细粒度检测,例如在二进制重排时,我们仅仅想检测方法函数,只想对方法函数进行插桩,此时就可以配置检测级别参数...,支持级别参数有三种: 1. edge:默认级别,细粒度最高级别,函数,Block代码块都会被插桩。

1.5K50

Clang插件统计方法耗时

0、统计函数耗时原理 LLVM优化转换工作就需要通过PASS来进行,就像下面这种图,PASS就像流水线上操作工一样对中间代码IR进行优化,每个PASS完成特定优化工作。...,插入并用于记录当前时间; my_fun_e则是在函数最末尾插入,用于记录当前时间并与之前函数开始记录时间做差值,把函数名称耗时打印出来。...// 插入end_func(struction) endCI->insertBefore(IST); } } } 4、运行效果 -[AppDelegate...application:didFinishLaunchingWithOptions:] 5 us -[AppDelegate application:configurationForConnectingSceneSession...-[SceneDelegate window] 0 us -[SceneDelegate window] 0 us 5、统计方法耗时其他方案 可以通过hook objc_msgSend: 复制栈帧

82130

【C语言】编译链接深度剖析

注:在Windows环境下目标文件后缀是.obj,Linux环境下目标文件后缀是.o 多个目标文件链接库一起经过链接器处理生成最终可执行程序 链接库是指运行时库(它是支持程序运行基本函数集合...链接命令如下: gcc test .o -o test 链接过程主要包括:地址空间分配,符号决议和重定位等这些步骤。链接解决是一个项目中多文件,多模块之间互相调用问题。...符号表包含链接后符号最终地址信息。 总结: 在C语言链接过程中,通过构建全局符号表实现符号决议,通过读取修改重定位表实现符号地址计算重定位,从而生成可以直接执行目标文件。...Add.c文件中Add函数去掉,再次将代码运行时,会发出警告: 构建输出文件,代码段链接test.oadd.o代码段,数据段链接add.o中g_val变量,符号表记录链接后各符号最终地址。...这个时候程序讲使用一个运行时堆栈(stack),存储函数局部变量返回地址。程序同时也可以使用静态(static)内存,存储静态内存中变量在程序整个执行过程一直保留他们值。 终止程序。

9610

链接链接区别

由于硬链接是有着相同 inode 号仅文件名不同文件,因此硬链接存在以下几点特性: 文件有相同 inode 及 data block; 只能对已存在文件进行创建; 不能交叉文件系统进行硬链接创建...; 不能对目录进行创建,只可对文件创建; 删除一个硬链接文件并不影响其他有相同 inode 号文件。...软链接链接不同,若文件用户数据块中存放内容是另一文件路径名指向,则该文件就是软连接。软链接就是一个普通文件,只是数据块内容有点特殊。软链接有着自己 inode 号以及用户数据块。...因此软链接创建使用没有类似硬链接诸多限制: 软链接有自己文件属性及权限等; 可对不存在文件或目录创建软链接; 软链接可交叉文件系统; 软链接可对文件或目录创建; 创建软链接时,链接计数 i_nlink...不会增加; 删除软链接并不影响被指向文件,但若被指向原文件被删除,则相关软连接被称为死链接(即 dangling link,若被指向路径文件被重新创建,死链接可恢复为正常链接)。

1.6K30

Linux中链接文件_软链接链接

一、链接文件介绍 Linux操作系统中链接文件”分为硬链接(hard link)链接(symbolic link)。两种链接本质区别在于inode。...硬链接有两个限制: 不能跨文件系统,因为不同文件系统有不同inode table; 不能链接目录。...软链接链接不同,软链接是建立一个独立文件,当读取这个链接文件时,它会把读取行为转发到该文件所链接文件上。...二、两者区别 硬链接记录是目标的inode,软链接记录是目标的路径。 软链接就像是快捷方式,而硬链接就像是备份。 软链接可以做跨分区链接,而硬链接由于inode缘故,只能在本分区中做链接。...所以,软链接使用频率要高很多。 三、如何建立软链接链接 ln(link)命令格式:ln [-s] [来源文件] [目的文件]。

6.5K30

Linux中链接链接

链接:在一个文件里面,对于目录来说,记录着文件名字inode号(inode 是文件元数据一部分但其并不包含文件名,inode 号即索引节点号,是文件唯一标识),我们也可以在多个目录里记录相同...也就是说,当文件链接数被目录记录了一次,文件链接数就增加了一次。所以,文件只要在目录里存在,它就至少有一个硬链接。...硬链接     ln 源  新文件        一旦创建成功,则没有源目的文件关系 (硬链接里面不分主次关系)一个文件,只有硬链接为0时才是彻底删除。 ​...(因为引入了对目录硬连接就有可能在目录中引入循环,在目录遍历时候系统就会陷入无限循环当中,这样导致无法定位到访问目录)     目录链接数包含目录自身名字,以及.子目录里.. 791422...只删除一个连接并不影响节点本身其它连接,只有当最后一个连接被删除后,文件数据块及目录连接才会被释放。也就是说,文件真正删除条件是之相关所有硬连接文件均被删除。

4.2K10

Linux中链接文件_软链接链接

一、链接文件介绍 Linux操作系统中链接文件”分为硬链接(hard link)链接(symbolic link)。两种链接本质区别在于inode。...硬链接有两个限制: 不能跨文件系统,因为不同文件系统有不同inode table; 不能链接目录。...软链接链接不同,软链接是建立一个独立文件,当读取这个链接文件时,它会把读取行为转发到该文件所链接文件上。...二、两者区别 硬链接记录是目标的inode,软链接记录是目标的路径。 软链接就像是快捷方式,而硬链接就像是备份。 软链接可以做跨分区链接,而硬链接由于inode缘故,只能在本分区中做链接。...所以,软链接使用频率要高很多。 三、如何建立软链接链接 ln(link)命令格式:ln [-s] [来源文件] [目的文件]。

6.8K30

Linux文件链接链接

1.2硬连接 一般情况下,文件名inode号码是”一一对应”关系,每个inode号码对应一个文件名。但是,Unix/Linux系统允许,多个文件名指向同一个inode号码。...只删除一个连接并不影响索引节点本身其它连接,只有当最后一个连接被删除后,文件数据块及目录连接才会被释放。也就是说,文件真正删除条件是之相关所有硬连接文件均被删除。...1.3软链接 另外一种连接称之为符号连接(Symbolic Link),也叫软连接。软链接文件有类似于Windows快捷方式。它实际上是一个特殊文件。...1.4硬链接拷贝区别 硬链接只是通过文件别名指向了文件inode(索引节点),inode是操作系统指定文件依据,每个文件有且只有一个inode,所以操作硬链接就是操作源文件。...(5)硬链接是文件不同名称,软连接是文件名链接,文件名不存在,超链接就失效了。

7.7K01

Linux下链接链接

CENTOS_MANTISBT_PROJECT_VERSION="7" REDHAT_SUPPORT_PRODUCT="centos" REDHAT_SUPPORT_PRODUCT_VERSION="7" 二、Linux中硬链接链接介绍...Linux文件系统中,有所谓链接(link),我们可以将其视为文件别名,而链接又可分为两种 : 硬链接(hard link)链接(symbolic link)。...硬链接是指文件可以有多个名称。 软链接方式则是产生一个特殊文件,该文件内容是指向另一个文件位置 硬链接是存在同一个文件系统中,而软链接却可以跨越不同文件系统。...三、Linux硬链接 1.创建文件 [root@node ~]# mkdir /hon [root@node ~]# echo "aa-bb-test" > /hon/test.01 2.创建硬链接文件...1.删除原文件 rm -rf /ron/aa.txt 2.测试打开软链接文件 软链接文件已经损坏 [root@node ~]# cat link.lk cat: link.lk: No such

33110
领券