【发布时间】:2012-04-02 23:00:35
【问题描述】:
我一直想知道为什么 Apple 在 Core Foundation 中使用类型定义为指针类型的数据类型,而在 Cocoa 中却不是。
例如,您将引用 UIColor 对象,例如 UIColor *,而对 CGColor 对象的引用将是 CGColorRef?还是NSURL * 和CFURLRef?为什么不总是使用CGColor * 和CFURL *?或者反过来说,为什么没有UIColorRef 或NSURLRef 类型,因为你从来没有直接访问过UIColor 或NSURL?
或者例如,为什么它是id而不是id *,因为它实际上是一个指针并且实际上可以被类型转换为void *?
具体来说,Apple 习惯在他们的旧框架中这样做,但在 Cocoa 中停止这样做,是否有某种原因?只是风格问题吗?
【问题讨论】:
-
Cocoa(作为 NeXTStep)实际上比 Core Foundation 更老。
-
啊,我没有意识到这一点。我一直认为它是较新的。
-
实际上,既然你提到了它,我确实意识到它是 NeXTStep 的一部分,我想我是在考虑更新为 Apple 框架的一部分。
标签: objective-c cocoa macos-carbon core-foundation