微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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
    }()
    
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐