Ios 找出所有swift协议实施者的姓名
是否有可能获得swift协议所有实施者的姓名。。?如果是的话,那怎么办Ios 找出所有swift协议实施者的姓名,ios,swift,protocols,swift4,implementation,Ios,Swift,Protocols,Swift4,Implementation,是否有可能获得swift协议所有实施者的姓名。。?如果是的话,那怎么办 我试图编写一个SDK,它公开了一个包含所有静态方法的协议,我不想在这里实现委托模式,因为我想得到所有实现者的名字,并直接调用这些方法 我就是这样做的: static func getClassesImplementingProtocol(_ protocolName: Protocol!) -> [AnyClass] { var result = [AnyClass](); let count: I
我试图编写一个SDK,它公开了一个包含所有静态方法的协议,我不想在这里实现委托模式,因为我想得到所有实现者的名字,并直接调用这些方法 我就是这样做的:
static func getClassesImplementingProtocol(_ protocolName: Protocol!) -> [AnyClass] {
var result = [AnyClass]();
let count: Int32 = objc_getClassList(nil, 0)
guard count > 0 else {
return result
}
let classes = UnsafeMutablePointer<AnyClass>.allocate(
capacity: Int(count)
)
defer {
classes.deallocate()
}
let buffer = AutoreleasingUnsafeMutablePointer<AnyClass>(classes)
for i in 0..<Int(objc_getClassList(buffer, count)) {
let someclass: AnyClass = classes[i]
if class_conformsToProtocol(someclass, protocolName) {
result.append(someclass);
}
}
return result
}
static func getClassesImplementingProtocol(\uprotocolname:Protocol!)->[AnyClass]{
var result=[AnyClass]();
let count:Int32=objc_getClassList(nil,0)
防护计数>0其他{
返回结果
}
让classes=unsafemeutablepointer如果没有委托,那么拥有协议的全部意义是什么(对实现协议的类的弱引用)?你打算如何在内存中获取所有对象?手动调用方法请不要与框架抗争谢谢你们的回复伙计们,我知道这将是一个可怕的设计。我正在做一些实验,我想知道这是否可能,以及如何实现。所以我发现了一个类似的老问题:哪种可行。谢谢你