swift - 命名空间拓展
/// 命名空间 public final class DCNameSpace<Base> { internal var base: Base internal var BASE: DCNameSpace<Base>.Type init(_ base: Base) { self.base = base self.BASE = DCNameSpace<Base>.self } } /// 命名空间协议 public protocol DCNameSpaceProtocol { associatedtype TargetType /// 实例变量及方法命名空间 var dc: DCNameSpace<TargetType> { get } /// 类变量及方法命名空间 static var dc: DCNameSpace<TargetType>.Type { get } }
// // DCCompatible.swift // DCAlertSomeUIKit // // Created by baitongtong on 2022/6/7. // import UIKit extension DCNameSpaceProtocol { public var dc: DCNameSpace<Self> { get { DCNameSpace<Self>(self) } } public static var dc: DCNameSpace<Self>.Type { get { DCNameSpace<Self>.self } } } // 要扩展的类 extension NSObject : DCNameSpaceProtocol {} extension CGFloat : DCNameSpaceProtocol {}
// // DCUIApplication+Extension.swift // DCAlertSomeUIKit // // Created by guaker on 2022/6/9. // import UIKit extension DCNameSpace where Base == UIApplication { public func topViewController(_ controller: UIViewController? = UIApplication.shared.keyWindow?.rootViewController) -> UIViewController? { if let navigationController = controller as? UINavigationController { if let visible = navigationController.visibleViewController { return topViewController(visible) } } if let tabControler = controller as? UITabBarController { if let selected = tabControler.selectedViewController { return topViewController(selected) } } if let presented = controller?.presentedViewController { return topViewController(presented) } return controller } }
签 名:被别人嫉妒,说明你卓越;你嫉妒别人,说明你无能。
座右铭:抓紧一切时间睡觉。
分类:
swift
标签:
swift - 命名空间拓展
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)