ฉันมีคลาส (แต่ไม่มีอินสแตนซ์) และจำเป็นต้องทราบว่าเป็นไปตามโปรโตคอลที่แน่นอนหรือไม่ อย่างไรก็ตาม Class สามารถ subclassed ได้หลายครั้งและ class_conformsToProtocol () จะไม่สนใจโปรโตคอลที่ประกาศบนซูเปอร์คลาส
ฉันสามารถใช้ class_getSuperclass () และตรวจสอบคลาสทั้งหมดซ้ำในลำดับชั้นขึ้นไปจนกระทั่งซูเปอร์คลาสนั้นเป็นศูนย์ อย่างไรก็ตามฉันสงสัยว่ามันอาจจะไม่มีประสิทธิภาพสำหรับชั้นเรียนที่ซ้อนกันอย่างลึกล้ำและอาจมีวิธีที่ดีกว่าในการทำเช่นนั้น?
กล่าวอีกนัยหนึ่งวิธีการของ NSObject นั้นสอดคล้องกับ ToProtocol อย่างไรที่ใช้งานได้ดีที่สุดโดยใช้วิธีการทำงานแบบ Objective-C เพื่อที่จะหาโปรโตคอลบนซูเปอร์คลาส
[myObject conformsToProtocol:@protocol(MyProtocol)];
ถ้าฉันอยู่ในเส้นทางที่ถูกต้องและมีลำดับชั้นของคลาสแบบเรียกซ้ำแจ้งให้ฉันทราบ