objective-c - [NSDate distancePant] 返回的错误指针

标签 objective-c cocoa

为什么这个程序:

#include <stdio.h>
#include <Foundation/NSDate.h>
int main() {
    printf("%p\n", [NSDate distantPast]);
    return 0;
}

在 64 位机器上返回错误指针? (在我的例子中是 0xc22d63c8c500000d)

最佳答案

它是一个标记指针 - 这些指针设置了最低有效位,其他位包含类型和值。它们为某些类型提供了紧凑的表示,从而避免了内存分配。欲了解更多详情,请参阅Mike Ash's blog article

关于objective-c - [NSDate distancePant] 返回的错误指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16958382/

相关文章:

ios - 使用相对路径将文件保存在文档目录中?

c++ - 在 Objective-C(不是 iPhone)中编译 Eigen 时出现问题

ios - 检查编译时是否添加了框架 - iOS

objective-c - 在类级别初始化静态 NSString

macos - -(无效)scrollWheel :(NSEvent)theEvent does not work

objective-c - Cocoa:中断每个方法调用?

objective-c - NSPrintOperation 挂起应用程序

iphone - 是否有用于蓝色电子邮件地址气泡的 API?

objective-c - cocoa :两点之间的 "Random"线?

cocoa - 通过 socket 将数组 Controller 链接到 XCode 中的数组