【发布时间】:2012-02-25 17:48:31
【问题描述】:
每当 Apple 创建自己的自定义类时,它通常会创建一个指向对象的指针,而不是实际的对象本身。
例如,而不是做:
Class object
他们经常这样做:
Class *object = [[Class alloc] init];
为什么使用指针而不是将对象放入堆栈中?这是否有一些技术原因,因为我认为这样做没有任何直接的好处。
编辑:如果 Objective-C 不支持堆栈上的对象,他们如何创建任何非指针?我的意思是我见过人们直接使用 NSInteger。
【问题讨论】:
-
因为它是objective-c 而不是C++
-
NSInteger 是 int 的 typedef,即它是原始类型而不是对象。
-
@UIAdam NSRect 或类似的类呢?它们不是 typedef,但它们仍然是直接创建的(即 NSWindow 的构造函数)
-
NSRect 是一个 C 结构,而不是一个对象。
-
好吧,回答一切,谢谢。
标签: objective-c memory heap-memory stack-memory