Foundation框架类转换为类名字符串的NSStringFromClass方法
Foundation框架类转换为类名字符串的NSStringFromClass方法

Foundation框架类转换为类名字符串的NSStringFromClass方法

NSStringFromClass 是一个 Foundation 框架提供的 Objective-C runtime 函数,它的作用是:

将类(AnyClass)转换为类名字符串,返回的是 Objective-C runtime 下的全类名。

函数定义

func NSStringFromClass(_ aClass: AnyClass) -> String

输入:一个类(Class 对象,例如 NSView.self 或 type(of: someObject))。

输出:一个 String,是这个类的完整 Objective-C 名称。

使用示例

import Foundation
import AppKit

let view = NSButton()
let className = NSStringFromClass(type(of: view))

print(className) // 输出:"NSButton"

使用场景

1、获取类名调试:NSStringFromClass(type(of: object))。

2、判断某个窗口、视图是不是某类:NSStringFromClass(type(of: view)) == “NSButton”。

3、日志输出:动态查看当前类,print(“当前视图类:\(NSStringFromClass(type(of: self)))”)。

4、Swift 中判断某个 NSWindow 是否是 NSPanel:NSStringFromClass(type(of: window)) == “NSPanel”。

总结

NSStringFromClass 把一个类转成字符串,方便调试、类型判断、runtime 动态逻辑,是 Swift/Objective-C 混合项目中常见的桥接函数。

在Swift中,常使用 type(of:) 返回类型,而不是字符串。但是NSStringFromClass可以返回类型的字符串:

let object: Any = NSView()
print(NSStringFromClass(type(of: object as AnyObject))) // 输出:"NSView"

此外,NSClassFromString是相反的操作,将字符串类名转换为类。

   

如果您认为这篇文章给您带来了帮助,您可以在此通过支付宝或者微信打赏网站开发者。

欢迎加入我们的 微信交流群QQ交流群,交流更多精彩内容!
微信交流群二维码 QQ交流群二维码

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注