![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
swift
文章平均质量分 60
M.François
Learning code by doing more projects as many as you can.
展开
-
RxSwift和Combine的相同点和使用例子
RxSwift 和 Combine 都是响应式编程框架,用于简化异步和基于事件的代码。它们有很多相似之处,主要体现在设计理念和编程模式上。原创 2023-11-15 19:09:23 · 702 阅读 · 0 评论 -
Swift开发中:非逃逸闭包、逃逸闭包、自动闭包的区别
理解这三种闭包的区别有助于你更好地掌握 Swift 编程,尤其是在涉及到异步编程、内存管理和代码优化时。适当使用这些闭包可以使你的代码更加灵活和高效。在这个例子中,2 > 1 这个表达式被转换成了一个自动闭包,然后作为参数传递给 performAutoClosure 函数。原创 2023-11-14 15:49:05 · 616 阅读 · 0 评论 -
Swift中的strong, weak, unowned
选择 weak 还是 unowned 主要取决于引用的对象是否有可能在引用期间被销毁。如果是,应该使用 weak。如果引用的对象一直存在直到引用本身不再使用时,可以使用 unowned。不自动置空:与 weak 引用不同,当所引用的对象被销毁时,unowned 引用不会自动变成 nil。特别是在处理闭包和创建复杂的类实例关系时,合理的引用类型选择是必须的。用途:主要用于防止强引用循环,适用于引用始终指向未销毁的对象的场景。非拥有引用:unowned 引用同样是一种非拥有引用。类型限制:可以用于非可选类型。原创 2023-11-14 15:32:04 · 449 阅读 · 0 评论 -
Swift面试题
https://github.com/zlfyuan/Swift-Interview-questions/blob/master/swift面试题.md。转载 2023-11-14 15:27:36 · 49 阅读 · 0 评论 -
Swift基础
当前版本:Swift 5.9。原创 2023-10-26 10:38:51 · 260 阅读 · 0 评论 -
Flutter和SwiftUI和ReactNative比较
例如系统的摄像机、麦克风、GPS、陀螺仪,等等。原创 2023-10-23 23:31:32 · 1228 阅读 · 1 评论 -
2020年12月 C/ObjC/Swift混合编写开发的原理/使用/注意事项
1.Swift 5.32.Xcode 12.00x00 为什么要用Swift?1.Swift是趋势,Apple推荐,关键是5.0版本的ABI语法已经成熟固定了2.支持泛型、Optional、guard、differ、类型自动推导3.相同的功能,Swift编写的代码量比ObjC要少一半,运行效率比ObjC高2.6倍4.开源、跨平台,等等0x01 开发篇问1:在ObjC代码里如何调用Swift?在.h/m文件里导入头文件,例如:ProductModuleName叫做Apple,那么头文原创 2020-10-19 11:07:52 · 548 阅读 · 0 评论 -
牛客网算法题:给定一个字符串,计算从做到右的字符出现的个数
题目:给定一个字符串,计算出从做到右的字符出现的个数忽略字符计算后个数为1的数字例如原始输入字符串:"aabccccaaa"期望输出: “a2bc4a3”解释:从左到右,a出现了2次,记为a2;b出现了1次,记为b;c出现了4次,记为c4;再a出现了3次,记为a3。结果就是:a2bc4a3以Swift语言实现如下class TestA: NSObject { private var lowerLetters: [String: Int] = ["a":0, "b原创 2020-08-31 11:47:20 · 490 阅读 · 0 评论 -
iOS启动优化/耗电优化
一、启动优化1.pre-main阶段我们可以通过苹果提供了XCode内建的测量方法,1.点击项目名称2.Edit scheme...3.左侧Run4.中间顶部菜单Auguments5.在Environment Variables中添加一个环境变量DYLD_PRINT_STATISTICS,并设为 1再次运行项目,会得到以下输出主要分为3个加载阶段1.加载应用的可执行文件(app自身的所有.o文件集合)2.加载动态链接器dyld(dynamic loader一个专门用来加载动态链原创 2020-08-10 13:23:21 · 615 阅读 · 1 评论 -
iOS卡顿检测方案
方案一:基于RunLoop主线程绝大部分计算或者绘制任务都是以Runloop为单位发生。单次Runloop如果时长超过16ms,就会导致UI体验的卡顿。那如何检测单次Runloop的耗时呢?Runloop的生命周期及运行机制虽然不透明,但苹果提供了一些API去检测部分行为。我们可以通过如下代码监听Runloop每次进入的事件:- (void)setupRunloopObserver{ static dispatch_once_t onceToken; dispatch_once(&a原创 2020-08-06 16:03:09 · 1276 阅读 · 0 评论 -
iOS 操作触感震动 tab点击震动 按钮点击震动
其实很简单,主要是系统提供的几种震动方式主要在这个AudioTool.framework里#import <AudioToolbox/AudioToolbox.h>一般震动AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);普通短震(类似3D Touch的 Peek 反馈 )AudioServicesPlaySyst...原创 2020-04-25 11:35:01 · 4415 阅读 · 0 评论 -
Xcode DeviceSupport iOS 13.4.1 (17E262)
下载地址:https://github.com/filsv/iPhoneOSDeviceSupport各种版本都有重启Xcode就好了原创 2020-04-15 19:41:17 · 6821 阅读 · 1 评论 -
iOS Charles 抓包指南 - 从入门到精通
iOS Charles 抓包指南以下那知乎的请求举例子步骤Step 1: 安装 Charles 从 https://www.charlesproxy.com/download/ 下载安装 Charles 最新版。Step 2: 注册 License Charles -&gt; Help -&gt; Register Charles Registered name: 你购...原创 2018-01-19 15:16:04 · 11425 阅读 · 0 评论 -
Objective和Swift混编 官方解释
Objective和Swift混编 官方解释Apple Official Documentation Explanation重点1.在Objective-C代码里使用Swift,则在Objective-C代码里使用#import "ProductModuleName-Swift.h" 即可2.在Swift代码里使用Objective-C,则在Objective-C的桥接文件原创 2017-12-08 18:13:36 · 683 阅读 · 0 评论 -
iOS瀑布流
Demo地址一、实现方式1.UIScrollView 重点:视图重用2.UITableView 重点:滑动同步3.UICollectionView 重点:布局二、实现代码本文以UICollectionView作为讲解,要做成瀑布流的效果,其实很简单;基本分为三个步骤 - 1.创建一个基本的UICollectionView,但是cell的大小不一致 -原创 2017-11-12 00:18:29 · 381 阅读 · 0 评论 -
iOS应用审核 - Phased Release for Automatic Updates (阶段性自动更新发布)
iOS应用审核 - Phased Release for Automatic Updates (阶段性发布自动更新)官方解释地址:https://itunespartner.apple.com/en/apps/faq/Managing%20Your%20Apps_Submission%20ProcessPhased Release for Automatic Updates 以下翻译成“ 阶段性自动原创 2017-06-14 19:51:36 · 2705 阅读 · 0 评论