Swift进阶文章汇总在文章swift进阶(四)闭包的使用介绍了闭包的使用,那么闭包底层是什么样的呢?那今天让我们探究一番。1. 闭包捕获上下文先看以下代码打印的值应该是多少?func makeIncrementer() -> () -> Int {
var runningTotal = 10
func incrementer() -> Int {
转载
2023-09-04 19:27:42
150阅读
一、元组1.1、元组(tuples)把多个值组合成一个复合值。元组内的值可以使任意类型,并不要求是相同类型。下面这个例子中,(404, "Not Found")是一个?述 HTTP 状态码(HTTP status code)的元组。HTTP 状态码是当你请求网页的时候 web 服务器返回的一个特殊值。如果你请求的网页不存在就会返回一个 404 Not Found 状态码。let http404Er
结构和类Swift不要求为自定义结构和类创建单独的接口和实现文件。在Swift中,在单个文件中定义结构或类,并且该类或结构的外部接口自动可供其他代码使用。比较结构和类Swift中的结构和类的共同点:定义存储值的属性定义提供功能的方法定义下标以使用下标语法提供对其值的访问定义初始化程序以设置其初始状态扩展以扩展其功能,超越默认实现符合协议以提供某种标准功能类具有结构不具备的其他功能:继承使一个类能够
转载
2024-02-13 20:20:54
68阅读
好吧,让我们从头来过。什么是对象编程编程呢?
先让我们从上往下理解:人是一个喜欢归类的动物,所以有生物学上的纲目。纲,即是我们编程里的基类(也叫父类);目,即是我们编程里的派生类(也叫子类)。基类与派生类是相对而言的,但跟纲目一样,都是以相同特征、行为来划分的集合,同时派生类是基类特征、行为的延伸与拓展。特征在这里叫属性,行为在这里叫方法,这也是类的基本。另外,同生物学
转载
2024-06-12 17:35:47
25阅读
Swift的属性分为存储属性(Stored Property)和计算属性(Computed Property),存储属性还有一个懒加载的延迟存储属性(Lazy Stored Property),存储属性还能够添加属性监听器(Property Observer),这篇文章我们就来探究下属性背后的实现原理。存储属性(Stored Property)建一个结构体Sequence, 代码如下:struct
# Swift array底层
在Swift中,数组是一种常用的数据结构,它可以存储一系列相同类型的数据。在本文中,我们将深入探讨Swift数组的底层实现。
## 数组的基本概念
在Swift中,数组是由一系列相同类型的元素组成的有序集合。数组的长度可以动态调整,可以根据需要添加或删除元素。数组的元素可以通过索引访问,索引从0开始。
## 数组的底层实现
Swift数组的底层实现是基于动
原创
2023-12-01 06:33:40
108阅读
目录Ifelse & else if 语句可选绑定结合条件Switch何时使用switch语句,而不是 if 语句?Fallthrough 语句区间匹配值绑定Guard 条件语句是为了根据不同特定条件执行不同的代码。Swift 提供两种条件语句:if 与switch ,如果需要判断的条件较单纯或需要设置的条件较少时,可以使用 if ,反之则使用 switch 。If最简单的形式就是只有一
转载
2023-10-31 10:40:00
0阅读
协议 像许多其他语言一样表示接口。您可能已经知道,协议用于定义“适合特定任务或功能的方法,属性和其他要求的蓝图”。 在本文中,我们将深入讨论使用Swift 5.3的协议Protocol。让我们以协议为基础开始。符合协议协议允许您将相似的方法,功能和属性分组。斯威夫特,您可以指定这些接口的保证class,struct和enum类型。只有class类型可以使用基类和协议的继承。protocol MyP
【面试-1】Runtime Asssociate方法关联的对象,需要在dealloc中释放?当我们对象释放时
原创
2021-06-29 16:50:59
527阅读
1评论
iOS 底层原理 文章汇总【面试-1】Runtime Asssociate方法关联的对象,需要在dealloc中释放?当我们对象释放时,会调用dealloc1、C++函数释放 :objc_cxxDestruct2、移除关联属性:_object_remove_asso
原创
2021-09-01 17:01:50
691阅读
设计原则不允许忽略错误的设计原则不断的将模板代码和功能代码分离,实现高可重用性contains使用检查一个序列中的所有元素是否全部都满足某个条件, 封装一个更具有描述性名字的新函数extension Sequence {
public func all(matching predicate: (Element) -> Bool) -> Bool {
// 对于 个条件,如果没有
转载
2024-07-19 14:26:24
53阅读
中美技术战之下,无数国人在无数个日夜中无不为中华崛起而奋斗,就在今天,我家成果终于初长成!日前,正在于东莞松山湖总部举办的华为开发者大会上,华为消费者业务 CEO 余承东正式宣布了极具「开天辟地」般意义的鸿蒙 OS 的到来。鸿蒙 OS 共有四大技术特性之所以研发鸿蒙 OS,其实不仅是为了避免关键时期被扼住喉咙的尴尬,对此,余承东也表示,目前 Android/Linux 系统内核代码庞大冗余,难以保
转载
2024-10-16 09:06:26
42阅读
swift 语言出来后,可能新的项目直接使用swift来开发。但可能在过程中会遇到一些情况,某些已用OC写好的类或封装好的模块。不想再在swift 中再写一次,哪就使用混编。
这个在IOS8中是同意的。 先中简单的入手,先研究在同一个project文件夹下混合使用的情况。 为了演示。先准备两个类 第一个是swift语言写的类,文件名称为 act.swift 1. import Foun
转载
2024-08-10 18:06:03
49阅读
系列文章:OC底层原理系列,OC基础知识系列在上篇我们介绍了小对象,copy,strong的内存管理,介绍了release和dealloc的底层实现,这篇文章继续研究内存管理中的AutoReleasePool,研究AutoReleasePool也会研究下跟AutoReleasePool关联紧密的NSRunLoop。AutoReleasePool 自动释放池自动释放池是OC的一种内存自动回收机制,在
转载
2021-02-04 13:24:07
2945阅读
2评论
ArrayList底层详解一、ArrayList集合底层数据结构二、ArrayList继承关系1、Serializable标记性接口2、Cloneable 标记性接口浅拷贝深拷贝3、RandomAccess标记接口4、AbstractList抽象类三、ArrayList源码四、迭代器 / 并发修改异常并发修改异常的特殊情况迭代器默认的remove()方法 一、ArrayList集合底层数据结构A
转载
2023-07-25 23:20:02
51阅读
isMemberOfClass- 调用者必须是传入的类的实例对象才返回YES- 判断调用者是否是传入对象的实例,别弄反了,如 [s1 isMemberOfClass:p1] ,意思是s1是否是p1的实例对象- 不进行父类递归去查找判断源码:+ (BOOL)isMemberOfClass:(Class)cls { return object_getClass((id)self) == cls;
转载
2021-05-14 20:46:05
198阅读
2评论
写的内容比较多,由于本人能力有限,有些地方可能解释的有问题,请各位能够指出,同时对Block有关的疑问,欢迎大家留言。希望大家能够相互交流、探索,一起进步!
原创
2021-04-24 14:51:02
911阅读
误解一:安卓是iOS的后辈 不知不觉,安卓已经成为了世界上最流行的移动智能系统,就市场占有率来看,安卓甚至要高于引领了智能机和平板电脑革命的iOS。安卓的红火深远地影响了IT行业,全球最大的社交网络Facebook甚至倡议员工弃用iOS改换安卓手机以更深入地了解用户体验 但是,流行总伴随着流言,安卓席卷世界的同时也让一些关于安卓的误解深深地植根在了人们的脑海中。很多人每天都在用安卓
转载
2024-06-26 20:37:30
34阅读
苹果爸爸在 3.29 正式发布了 Swift 4.1 版本,这个版本从代码层面兼容了 Swift 4,所以如果用 Xcode 中的 Swift Migrator 来迁移工程的话,不会影响到原来的代码。本文主要整理了 raywenderlich 上的 What’s New in Swift 4.1? 和 官方博客上的内容,简要介绍了 Swift 4.1 相关的一些新特性。1 支持元素类型为 Opti
转载
2024-06-02 21:41:46
34阅读
关于开发语言的历史可以参看:计算机和编程语言的发展历史关于Android和IOS的发展历史可以参看:Android和IOS的发展历史开发语言不同1、IOS使用的是ObjectC和Swift2、Android使用的是Java和KotLin框架结构Android系统的底层建立在Linux系统之上Android系统的底层建立在Linux系统之上,由上到下依次是 应用程序、应用程序框架、核心类库,Linu
转载
2023-07-25 12:35:46
43阅读