/*
    Swift 内存管理
*/
/*
(1)析构方法
对象的内存被回收前夕被隐式调用的方法.主要执行一些额外的操
作.
比如: 关闭文件,断开网络,释放对象特有的一些资源等.
dealloc, MRC [obj release]
ARC, 弱化内存操作(Swift的析构方法,不用去管理内存).
*/
class FileHandle {
    var fd: Int32? //文件描            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-27 03:07:32
                            
                                76阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            MemoryLayout 基本使用方法 HandyJSON 是 Swift 处理 JSON 数据的开源库之一,类似 JOSNModel,它可以直接将 JSON 数据转化为类实例在代码中使用。 由于 Swift 是一种静态语言,没有 OC 那种灵活的 Runtime 机制,为了达到类似 JSONMod            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2018-06-14 17:51:00
                            
                                189阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            前言 Apple今年推出了Swift3.0,较2.3来说,3.0是一次重大的升级。关于这次更新,在这里都可以找到,最主要的还是提高了Swift的性能,优化了Swift API的设计(命名)规范。 前段时间对之前写的一个项目ImageMaskTransition做了简单迁移,先保证能在3.0下正常运行            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2018-06-14 17:56:00
                            
                                102阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            这篇文章是在阅读《The Swift Programming Language》Automatic Reference Counting(ARC,自动引用计数)一章时做的一些笔记,同时参考了其他的一些资料。retain 和 release 什么是自动引用计数? 每当你创建一个类的实例的时候,ARC 便会自动分配一块内存空间来存放这个实例的信息,当这个实例不再被使用的时候,AR            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-01-24 18:58:31
                            
                                47阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            附:模型用来表示一个系统、过程、事物或概念(的一种表达形式)。模型可以是物理实体、图形、数学表达式或一段描述文字。好处:是形成一种具体的印象,有助于了解过程的实质。工作模型:就是对一个事物完成一次工作的描述、工作流程、步骤 1.7.1 什么是模型?模型(Model)就是一个系统的抽象表现(Abstract representation)。由于一个真实的系统可能太庞大,也可能含有许多细节,常常超过人            
                
         
            
            
            
            在Swift From Scratch的上一课中,我们创建了一个功能性的待办应用程序。 不过,数据模型可能需要一些帮助。 在最后的课程中,我们将通过实现自定义模型类来重构数据模型。 1.数据模型  我们将要实现的数据模型包括两个类,一个Task类和一个从Task类继承的ToDo类。 在创建和实现这些模型类的同时,我们将继续探索Swift中的面向对象编程。 在本课程中,我们将放大类实例的初始化以及            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-17 11:35:52
                            
                                60阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            在这篇文章中,我会解释什么是内存泄漏(memory leaks),讨论循环引用(retain cycles)和其他事物。内存泄露这确实是我们开发者经常面对的问题之一,我们的代码越来越复杂,随着app的增长,我们也带来了泄漏。内存泄漏会永久占用一部分内存,让它无法再使用。它是占据空间带来问题的垃圾。有时候我们分配内存,却再也没有释放,并且也没有app引用去。因为没有对它的引用,也就没有办法释放它,这            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-10-30 12:58:59
                            
                                96阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            SwiftStack在OpenStack Swift基础上开发的一种产品,当然公司的名称也同样为SwiftStack。博客:http://swiftstack.com/blog/ SwiftStack里面有篇文章比较好的是Swift Capacity Management  即Swift的容量管理,当在Swift服务器集群中删除或者添加存储的时候,应该怎么做使得系统可            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-18 13:53:45
                            
                                128阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            谈内存必然离不开指针的概念,指针既是难点也是重点。一、指针简介Swift中也有专门的指针类型,这些都被定性为Unsafe(不安全的),常见的有以下4种类型:
UnsafePointer<Pointee>:类似于const Pointee *(只读的泛型指针)
UnsafeMutablePointer<Pointee>:类似于Pointee *(可读可写的泛型指针)
Unsa            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-15 10:19:03
                            
                                64阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Swift析构方法与内存管理(初级)/*
    Swift 内存管理(只有ARC模式,没有MRC模式,不需要手动管理内存,系统自动管理)
 */
import Foundation
/*
  1、析构方法
    对象的内存被回收前被隐式调用的方法。主要执行一些额外的操作。比如:关闭文件、断开网络、释放对象等
    ARC,弱化内存操作(Swift的析构方法,不用管理内存)
 */
pri            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-29 14:21:31
                            
                                75阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            /**1.扩展语法2.计算型属性3.构造器方法下标6.嵌套类型OC中的分类(category)类似。不过与OC不同的是,swift的扩展没有名字。 如果定义一个扩展向已有类型添加新功能,那么这个心功能对该类型的所有已有实例中都是可用的,即使他们是在换个扩展的前面定义的 */  //扩展语法 /**extension extension SomeType {加到SomeType的新功能写到这 }            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-11 17:49:00
                            
                                96阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            使应用程序感觉快速和响应不仅仅是调整其UI的呈现方式,或者提高其操作和算法的执行速度 - 它通常与有效管理数据和避免不必要的工作同样重要。这种不必要工作的一个非常常见的来源是我们最终多次重新加载完全相同的数据。它可能是加载同一模型的重复副本的多个功能,或者每次重新显示在屏幕上时重新加载视图的数据。本周 - 让我们来看看缓存在这种情况下如何成为一个非常强大的工具,如何在Swift中构建一个高效优雅的            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-10-26 09:20:18
                            
                                162阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            当你将一个模块导入 Swift 代码中时,你希望它们产生的效果是叠加的,也就是说,你不需要什么代价就可以使用新功能,仅仅 app 的大小会增加一点。导入 NaturalLanguage 框架,你的 app 就可以 确定文本的语言。导入 CoreMotion,你的应用可以 响应设备方向的变化。但是如果进行语言本地化的功能干扰到手机检测设备方向的功能,那就太不可思议了。虽然这个特殊的例子有点极端,但在            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-03 17:33:47
                            
                                68阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Swift2.0中引入了协议扩展的特性,并且建议开发者一切从协议(Protocol)出发,经过几个月的学习探索,博主发现Swift作为一门面向协议编程(POP)的语言非常适合时下火热的MVVM架构。MVVM已经提出有一段时间了,如果你还不懂什么是MVVM,建议先去补充相关的知识,再回到本文中。  在Cocoa Touch体系内,MVC是广为人知的经典架构,博主之前也讲解过MVC的相关知识,但是随着            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-19 14:15:02
                            
                                45阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            为了解决引用循环的问题。 However, with ARC, values are deallocated as soon as their last strong reference is removed, making weak references unsuitable for such a            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2018-04-08 18:25:00
                            
                                111阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            2020年的第一篇博客, 算是2020年开了个好头, 希望能够继续坚持下去, 继续记录分享更多更高质量的文章今年期待已久的Swift5.0稳定版就已经发布了, 感兴趣的小伙伴可看我的这篇博客:Swift 5.0新特性更新
这篇博客可主要分享Swift的内存管理的相关介绍和剖析, 测试环境: Xcode 11.2.1, Swift 5.1.2
内存管理和OC一样, 在Swift中也是采用基于引用计数            
                
         
            
            
            
            1.内存管理a。内存管理的对象--只针对引用类型的对象classb。内存管理的原则:当没有任何引用指向某个对象的时候,系统会自动销毁该对象c。arc自动引用计数class MemArc {
deinit{
print("deinit")
}
}
var r = MemArc()
var r1 = r
var r2 = MemArc()
r = r2
r1 = r2//r,r1,r2都指向了一个            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-08-12 14:22:19
                            
                                25阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            //内存管理/自动引用计数/弱引用/非持有引用
 
//引用计数:每个对象都有一个引用计数,用来记录有多少人(对象或变量)需要该对象活着
//当引用计数>0的时候,该对象会保留在内存中
//当引用计数=0的时候,该对象会立刻从内存中销毁
 
//自动引用计数不等于垃圾回收机制,垃圾回收机制是内存使用特别大/紧缺时,会检查各种结构(比如堆栈)、对象,在需要清理时给予清理
 
//弱引用不会增加            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-23 21:13:16
                            
                                165阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            聊一聊,Swift的内存管理   在Objective-C中无论ARC、MRC,开发中我们还是需要对内存进行管理,主要在于,避免循环引用、代理、KVO移除、Block这些,再有就是属性声明时的语义(property_attribute)。关于Objective-C中的引用计数制我就不重复了。   可到了Swift中,对于属性的声明就只剩下了lazy\weak            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-16 01:58:23
                            
                                47阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # Swift 存储模型
Swift 是一种现代的、安全的、快速的编程语言,广泛应用于 iOS、macOS、watchOS 和 tvOS 平台上的应用程序开发。它提供了一种高效的存储模型来管理数据的存储和访问。在本文中,我们将深入探讨 Swift 的存储模型,并通过示例代码来说明其使用方法。
## 存储模型简介
存储模型是指将数据存储在内存中的方式和规则。Swift 提供了多种存储模型,包括            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-09-15 23:32:45
                            
                                49阅读