Swift 7.OC单例

ViewController.m

#import "ViewController.h"


#import "单例-Swift.h"

//OCd调用 swift  需要导入桥接文件 命名空间-Swift.h 文件
@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    SoundTools *tools = [SoundTools tools];
    
    
    NSLog(@"%@",[SoundTools tools]);
    NSLog(@"%@",tools);
    
    
}


NetworkTools.h

#import <Foundation/Foundation.h>

@interface NetworkTools : NSObject

//设置全局访问点
+ (instancetype) sharedTools;
@end

NetworkTools.m

#import "NetworkTools.h"

@implementation NetworkTools

+ (instancetype)sharedTools {
    static NetworkTools *instance = nil;
    static dispatch_once_t oncetoken;
    dispatch_once(&oncetoken,^{
        instance = [[NetworkTools alloc] init];
    });
    
    
    return instance;
}
@end

SoundTools.swift
import UIKit

class SoundTools: NSObject {

    //let 不可变 同样是线程安全的 
    var baseURL: String?
    
    static let tools: SoundTools = { () -> SoundTools in
        let instance = SoundTools()
        instance.baseURL = "www.douniwan.com"
        
        return instance
    }()
    
}

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...