博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
单例模式
阅读量:7120 次
发布时间:2019-06-28

本文共 796 字,大约阅读时间需要 2 分钟。

hot3.png

OC 的单例写法

+ (instancetype)sharedTools {    static id instance;      static dispatch_once_t onceToken;      dispatch_once(&onceToken, ^{          instance = [[self alloc] init];            });    return instance;}
  • Swift 仿 OC 的写法

class SoundTools: NSObject {    static var instance: SoundTools?        static var onceToken: dispatch_once_t = 0    class func sharedSoundTools() -> SoundTools {            dispatch_once(&onceToken) { () -> Void in                    instance = SoundTools()                    }        return instance!    }}

在 Swift 中默认使用项目名称作为类的命名空间,但是在做混合开发时,不允许使用特殊符号,可以参照下图修改

  • 导入头文件

#import "单例测试-Swift.h"

导入头文件的格式是 命名空间-Swift.h

  • Swift 中的单例写法

// Swift 单例写法static let sharedSoundTools = SoundTools()override init() {    print("创建单例!")}

转载于:https://my.oschina.net/venn0126/blog/544360

你可能感兴趣的文章
drf版本控制 和django缓存,跨域问题,
查看>>
SVN环境搭建详解(来源网络)
查看>>
设备驱动基础学习--字符驱动实现
查看>>
sourceinsight安装记录
查看>>
PHP函数索引-F
查看>>
数组[]
查看>>
C++学习之基本概念
查看>>
el captain设置环境变量
查看>>
Educational Codeforces Round 37 A B C
查看>>
UVA 129 Krypton Factor(DFS 回溯)
查看>>
MongoDB可视化工具Studio 3T的使用
查看>>
Android卡片设置透明度失效问题
查看>>
Python 利用*args和**kwargs解决函数遇到不确定数量参数问题
查看>>
线段树(知识概念)
查看>>
[Mugeda HTML5技术教程之3] Hello World: 第一个Mugeda动画
查看>>
jQuery操作select控件取值和设值
查看>>
Python(^^^^^小技巧^^^^^——不定期更新)
查看>>
一个好的产品要有一个排查问题、报表、运营等相关工具
查看>>
Nuget添加新项目的问题
查看>>
[河南省ACM省赛-第四届] 表达式求值(nyoj 305)
查看>>