ios - 所有子类的 class_copyPropertyList 也
<p><p>这里是解释<br/>
<a href="https://stackoverflow.com/questions/11774162/list-of-class-properties-in-objective-c" rel="noreferrer noopener nofollow">List of class properties in Objective-C</a> <br/>
如何使用 class_copyPropertyList 在运行时获取类的所有属性。</p>
<p>我已经测试过了,它工作正常。<br/>
我注意到它只会从该类中获取属性,而不是它的子类。 </p>
<p>代码:</p>
<pre><code>@interface JustForThisUT : NSObject
@property NSUInteger public_access;
@end
@interface JustForThisUT ()
@property NSUInteger private_access;
@end
@implementation JustForThisUT
@end
@interface JustForThisUTParent : JustForThisUT
@property NSUInteger my_public_access;
@end
@interface JustForThisUTParent ()
@property NSUInteger my_private_access;
@end
@implementation JustForThisUTParent
@end
</code></pre>
<p>如果我在 JustForThisUT 上使用它,我将获得 2 个属性(public_access 和 private_access)<br/>
如果我在 JustForThisUTParent 上使用它,我还将获得 2 个属性(my_public_access 和 my_private_access)</p>
<p>但对于 JustForThisUTParent,我期望从 JustForThisUT 获得 4、2 和从 JustForThisUTParent 获得 2。 </p>
<p><strong>我的问题是</strong><br/>
如何从当前类和所有子类中获取属性?<br/>
甚至可能吗? </p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>您必须首先找到所有子类,然后使用 class_copyPropertyList() 列出每个类的属性,根据需要进行唯一化。</p>
<p>但是,这有一种不好的代码味道。这种动态的、大量反射的编程与 ObjC 的真正设计目的背道而驰。您最终会得到一个难以维护的脆弱代码库。</p>
<p>如果您真的想要这种性质的动态,那么在每个类上实现一个类方法,该方法返回您希望能够动态访问的属性名称列表。</p></p>
<p style="font-size: 20px;">关于ios - 所有子类的 class_copyPropertyList 也,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/25572690/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/25572690/
</a>
</p>
页:
[1]