gpt4 book ai didi

objective-c - 复制 NSDate(需要独立对象)

转载 作者:太空狗 更新时间:2023-10-30 03:27:19 26 4
gpt4 key购买 nike

NSDate 符合 NSCopying 协议(protocol)。根据 NSCopying 协议(protocol)的文档:

a copy must be a functionally independent object with values identical
to the original at the time the copy was made.

但是,当我这样做时:

NSDate *date1 = [NSDate date];
NSDate *date2 = [date1 copy];
NSLog(@"result: date1 0x%x date2 0x%x", (int)date1, (int)date2);
// "result: date1 0x2facb0 date2 0x2facb0"

这两个对象是相同的(相同的对象 ID)。我错过了什么?如何获取一个独立的对象作为副本?

最佳答案

copy 不保证不同的对象指针。 “功能独立”意味着对原始对象的更改不会反射(reflect)在副本中,因此对于不可变对象(immutable对象) copy 可能会像 retain 一样工作(我不知道是否虽然这是有保证的,但可能不是)。

尝试 date2 = [[NSDate alloc] initWithTimeInterval:0 sinceDate:date1]

关于objective-c - 复制 NSDate(需要独立对象),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7885669/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com