关于开发鸿蒙APP的建议
发表于|更新于
|浏览量:
背景
实现
参考
文章作者: 今是昨非
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 今是昨非的博客!
相关推荐
2021-04-21
iOS 删除新创建项目中的SceneDelegate
iOS 删除新创建项目中的SceneDelegate背景Xcode 11之后新建工程,默认为有SceneDelegate,但是SceneDelegate是从iOS 13之后才有的,如果最低兼容版本到iOS 13以下,需要怎么做呢? 过程首先来看一下,SceneDelegate是什么,为什么会有SceneDelegate 官方说明: A UISceneSession object manages a unique runtime instance of your scene. When the user adds a new scene to your app, or when you request one programmatically, the system creates a session object to track that scene. The session contains a unique identifier and the configuration details of the scene. UIKit maintains the sessio...
2021-05-27
正经分析iOS包大小优化
本文发表在《搜狐技术产品》公众号正经分析iOS包大小优化 iOS 包大小分析优化背景包大小优化是项目开发中不可避免会遇到的,网上关于包大小优化的文章很多,每篇文章说的都不尽相同,笔者曾经根据网上的文章做过包大小优化,但效果不尽人意;因此笔者想根据已有的文章、知识结合自己的理解、实践,做一份总结梳理,整理自己的包大小优化逻辑,不光要知道怎么做可以让包大小变化,还要知道为什么这么做能产生效果,所以就有了这篇文章。 分析想要优化安装包大小,首先需要弄清楚影响安装包大小的因素有哪些?之前笔者优化包大小直接闷着头就去瘦身,瘦来瘦去也没瘦出个名堂,而且还跟别人说不清楚自己做了什么,为什么这么做? 后来总结出来,做事之前要先思考、分析、最后再去做,要思考的是影响这件事的因素有哪些,一一列举出来,查漏补缺;然后针对这些因素进行分析,分析哪些因素是人为可控的,哪些因素是不能改变的,针对可控的部分要怎么优化,不可控的部分是否能避免,最好可以使用思维导图工具,一一记录;然后按照思维导图的整理出来的数据,按步骤去执行。 回过头来,针对安装包大小,首先分析影响安装包大小的因素,有:Xcode的设置、资...
2024-06-20
算法——两数之和、字母异位词分组、最长连续序列、移动零
算法——两数之和、字母异位词分组、最长连续序列、移动零的实现 两数之和 给指定的数,找到数组中两数之和为给定数的 index 思路: 使用字典 dict 存储,key 为数组中 index 对应的值, value 为 index。然后遍历数组, 如果 target - value在数组中存在,则返回target-value 对应的字典的 value 即 index和当前 value 对应的 index; 如果不存在,则把当前 value 和 index 存入数组中。 解法: 123456789101112131415161718192021/**index, value 遍历数组如果 target - value 在字典中,则返回字典中的index和当前index如果不存在,则存储当前值和 index,dict[value] = index*/func twoSum(_ nums: [Int], _ target: Int) -> [Int] { var dict = [Int: Int]() for (index, value) in nums.enu...
2023-04-14
iOS16.4 Webview 不能用Safari调试
背景Xcode 升级到 14.3后,模拟器是iOS 16.4 的,想通过Safari -> Developer -> Web Inspector查看,结果发现查看不了 修改一开始以为是设置 Safari 中 Advanced没开启,去查看后,发现开关已开启。 搜索后发现,从 iOS16.4 之后,如果想要通过Web Inspector查看,需要设置如下代码: 12345if #available(iOS 16.4, *) { webView.isInspectable = true} else { // Fallback on earlier versions} 设置之后,重新运行,再通过 Safari 查看,就可以看到了。 参考 Mark the webview as inspectable in iOS 16.4
2024-07-31
Swift 面试题
背景被问到的面试题,这里记录一下。 问题Swift 中 Struct 和 Class 的区别Swift 中 为什么 String、Array、Dictionary 用 Struct 实现Swift 中写时复制的原理Swift 中变量作用域有哪些,区别是什么Swift中 Protocol 如何声明可空MVP 的优点是什么RxSwift 中冷信号和热信号的区别RxSwift 中 CombineLatest、zip、merge的区别Git 中 rebase和 merge 的区别,rebased的 commitID 会改变吗SwiftUI 中 View 传值方式有哪些什么情况下触发 layoutSubviews 答案Swift 中 Struct 和 Class 的区别Struct是值类型,Class 是引用类型;Struct和 Class 都可以有属性和方法,但是 let 修饰的 Struct 不能更改,Class 修饰的可以更改;Struct方法中修改属性需要在方法前添加 mutating 关键字。Struct和 Class 都可以实现协议。Struct不能被继承,Class 可以...
2024-03-16
Pod 私有库相互引用
私有库的相互引用文章是转载自OC和Swift混合开发(Pod私有库的相互引用),在这里记录一下,方便以后查看。 概述:该文档主要介绍OC和Swift混合开发相互调用,包括3大类情况和12种具体情形。 三大类情况: 主工程内的混合互调, 主工程和Pod三方库之间的混合互调, Pod三方库和其他Pod三方库之间的混合互调。 十二种情形: 主工程内的OC 调用 主工程内的OC:#import “NSObject.h” 导入头文件直接调用。 主工程内的OC 调用 主工程内的Swift: 1. 主工程中创建.pch文件,在TARGETS -> Build Setting -> 搜索pch -> 设置.pch文件的路径, 2. 在.pch文件中添加 : 例如:#import “xxxxx_Swift.h” (该文件命名规则为:”工程名_Swift.h”,该文件为系统自动生成) , 3. 编译之后才可自动识别需要调用的Swift的文件 。 主工程内的OC 调用 OC的Pod三方库: #import ...