ios - 如何在swift中找到其他类中的类实例名称?
问题描述
想象一下我们有两个这样的类的情况:
class MyClass {
func printInstanceName() {
print(what?);
}
}
class User {
var firstObject: MyClass!
var secondObject: MyClass!
}
我将像这样实例化 User 类的对象:
let user = User();
user.firstObject = MyClass()
user.secondObject = MyClass()
我应该如何实现printInstanceName
下面的代码输出
user.firstObject.printInstanceName()
user.secondObject.printInstanceName()
是
firstObject
secondObject
这样做的目的是,我想知道从MyClass
inUser
的哪个实例printInstanceName
被调用!
解决方案
您不能从 MyClass 中获取属性名称,只能从 User 中获取。
class MyClass { }
class User {
var myObject: MyClass!
func printInstanceName() {
let mirror = Mirror(reflecting: self)
for (label, value) in mirror.children {
if type(of: value) == Optional<MyClass>.self {
print(label!)
}
}
}
}
let u = User()
u.printInstanceName()
推荐阅读
- java - Okta/Spring Boot Saml 应用程序进入无限循环
- elasticsearch - 如何向 Elastic Search 建议添加“上下文”
- r - 使用R按日期分组后获取变量集的平均值
- android - jwplayer android 直播搜索栏未显示
- enums - @Enumerated(EnumType.STRING) 生成 int 列而不是 varchar
- dotnetnuke - 在 DNN 9 中添加视频
- c++ - 在构造函数中设置变量失败?
- c# - C# ClientWebsocket 在传入的二进制消息上抛出异常
- scala - java.lang.NoSuchMethodError: org.apache.http.conn.ssl.SSLConnectionSocketFactory
- javascript - 这个 Angular 5 示例处理父子组件之间的通信究竟是如何工作的?