![]() |
1
10
简短回答:没有负面影响-按预期使用 答案很长:objective-c中的类实际上是对象,您可以像其他任何东西一样使用(检查返回类型-[nsObject class]——指向obj-c对象的指针)。当您调用[yourclass alloc]时,实际上是在向您的类发送一条消息,这是一个向运行时描述类的对象。(方法本身是围绕malloc()的一堆包装纸,因此不涉及任何魔法。)至于如何处理这些对象, 所有 objc中的对象(包括类)在堆中分配,因此堆栈不起作用。编辑:要明确一点,使用类方法和使用实例方法没有区别,只是使用类方法时不需要有该类的实例。 为了进一步了解这些类对象是如何实现的,我建议 http://www.sealiesoftware.com/blog/archive/2009/04/14/objc_explain_Classes_and_metaclasses.html |
![]() |
2
0
根据我的经验,类方法,或者在我的定义静态函数中,都有特定的用途。其中之一可以是性能,但前提是它们很小并且不处理大量数据。(即nsstring stringwithstring)。如果您处理的是大量的数据,那么您的性能冲击,正如您可能意识到的,是处理数据,而不是对象的实例化。坚持专注于处理耗时的任务,而不是创建用于处理任务的对象的开销。 具体答案:类方法是在加载时加载的,并且对您的应用程序总是可用的,与您描述的大量工作相比,通过类实例化加载它们的代码开销是最小的。(它们很可能会被缓存) |
![]() |
Martin sku · 在目标C中打印时间 2 年前 |
![]() |
Vinod prajapat · 如何更新数组的最后一个元素? 2 年前 |
![]() |
subin272 · 修复iOS中的多个按钮单击事件? 6 年前 |
![]() |
James Chan · 如何使用锁定/解锁? 6 年前 |
![]() |
Josh F. · NSBundle mainBundle返回零 6 年前 |