Swift 单例模式实现及类方法

本文介绍了Swift中的类方法概念,通过实例展示了如何使用class关键字将对象方法转化为类方法。接着,文章深入讲解了单例模式,强调其在数据共享和资源节省上的优势,以NSUserdefault为例。作者实现了一个名为MyTool的类,演示了如何创建并使用单例,确保在不同地方访问到的是同一个实例,从而保持数据一致性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在开始单例模式之前我们先讲一下类方法。应为单例模式需要依靠类方法来实现

首先,我们知道类方法就是 直接使用类名来调用,无需生成对象,再去调用。

其实类方法的生成很简单,只需要给我们之前的对象方法用class关键字来修饰即可

我们来看一个示例

对象方法

    func userName()->String{
        return "zhangsan"
    }

类方法


    class func userName()->String{
        return "zhangsan"
    }


接下来我们开始单例模式

首先 单例模式一般用于数据共享,在使用的时候无需创建多个对象,节省资源。比如我们属性的 NSUserdefault 就是一个单例

接下来我们实现一个类,用来共享数据。起名MyTool

实现如下


class MyTool{
    var currentNum:Int=1
    struct ToolP {
        static var myTool:MyTool?=nil
    }
    class func shareMyTool()->MyTool {
        if(ToolP.myTool == nil){
            ToolP.myTool=MyTool()
        }
        return ToolP.myTool!
    }
    
}

使用如下

        var myTool=MyTool.shareMyTool()
        myTool.currentNum=10
        var myTool1=MyTool.shareMyTool()
        println(myTool1.currentNum)


我们首先创建一个对象myTool 将类中变量 currentNum修改为10

然后我们来在创建对象(其实还是上次创建的对象) 将currentNum打印出来,发现他就是刚才修改的10


好了 就简单一点,大家可以自己继续发挥,有问题可以加群讨论

苹果开发群 :414319235  欢迎加入  欢迎讨论问题



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值