我知道alloc是一个类方法,它创建类的对象并指向它的"isa"指针,指向消息在运行时的映射方式.
我对allocWithZone和区域有一些了解.
任何人都可以告诉我或指向一个很好的链接解释: -
isa指针是如何指向正确的类的?
分配了多少内存?
从父类继承的成员的内存是如何创建的?
如果id是objc_object*的类型定义,什么是它的isa指针指向,那么它是如何保持anyobject因为isa指针将获得我们拥有选择的方法调度表,但他们有什么,告诉我们哪些数据成员假设在那里?
编译器在后台为您通过objc运行时插入调用.您可以在包含路径中找到该库objc/.objc/runtime.h可能最感兴趣的.作为奖励,一些选择的常见消息绕过objc_msgSend这些插入.
isa指针是如何指向正确的类的?
objc_constructInstance
分配了多少内存?
class_createInstance
class_getInstanceSize
Run Code Online (Sandbox Code Playgroud)
从父类继承的成员的内存是如何创建的?
存储器归零,并isa设置.
如果id是objc_object*的类型定义,什么是它的isa指针指向,那么它是如何保持anyobject因为isa指针将获得我们拥有选择的方法调度表,但他们有什么,告诉我们哪些数据成员假设在那里?
无论在初始化时设置了什么.ObjC对象指针只是原始内存.与其他语言不同,编写类型的转换和转换是变量地址的直接集合 - 在以下构造中,内存中没有明确的类型提升或转换:
MONDisplay * display = [NSString string];
NSLog(@"%@", display);
Run Code Online (Sandbox Code Playgroud)
指针与返回的值相同[NSString string].
| 归档时间: |
|
| 查看次数: |
1548 次 |
| 最近记录: |