相关疑难解决方法(0)

Objective-C中的类对象是什么?

好吧,所以我理解一个对象是一个必须分配和初始化的类的实例,但类本身是对象吗?

我知道当你创建一个新类时,它是一个其他的实例,比如NSObject.所以,如果这使它成为一个类,那么对象不仅可以容纳变量和方法,还可以容纳其他对象,对吧?

对不起,这可能是非常基本的,但我正在读两本关于可可和xcode的书,这一点有点不清楚(可能是因为我缺乏其他语言的经验).

macos cocoa metaclass class objective-c

24
推荐指数
1
解决办法
5686
查看次数

iOS/Objective-C - struct objc_class*和struct objc_object*

我的理解是,对象Objective-C的只是结构.

他们分别只是:

struct objc_class *
Run Code Online (Sandbox Code Playgroud)

和:

struct objc_object *
Run Code Online (Sandbox Code Playgroud)

问题#1:

objc_msgSend(id self, SEL _cmd);
Run Code Online (Sandbox Code Playgroud)

id 据我所知是类型 struct objc_object *

但是当我们调用类方法时,类是一个类struct objc_class *,

我希望它会引起问题或者喊出某种警告,例如"嘿,这里的错误类型,我的朋友".

但事实并非如此.

  • 为什么?

这只是为了满足我的好奇心,因为即使没有完全理解这一点,它似乎也没有给我带来任何麻烦(到目前为止).但我想深入挖掘并学习基本原理/"特点".

问题2:

由于根据我的经验没有警告(与问题#1有关),因此我不太确定它们可以互换使用.

struct objc_class *struct objc_object * 真正使用互换

如是:

  • 你能告诉我一个场景和样本何时/如何/为什么我们需要互换使用这些?

  • 什么是好处(如果有的话),缺点(如果有的话)和" 陷阱 "(需要注意的事项;如果有的话)这样做?

struct objective-c objective-c-runtime ios

4
推荐指数
2
解决办法
2819
查看次数