gpt4 book ai didi

ios - NSDate 变成 NSNumber MYSTERY

转载 作者:可可西里 更新时间:2023-11-01 05:00:19 27 4
gpt4 key购买 nike

我在使用自动引用计数的 iOS 4.3 和 iOS 5 中工作。我在我的界面中声明了一个 NSDate 对象:

NSDate *fingerprintsDate;

稍后,我设置了 NSDate - 使用调试器并逐步执行它具有我期望的值:

fingerprintsDate = [NSDate date];

最后,我尝试从日期中获取时间:

if (fingerprintsDate == nil || [fingerprintsDate timeIntervalSinceNow] > 6)

这就是它因无法识别的选择器而崩溃的地方:“2012-01-18 23:07:46.662 Netapporter[473:707] -[NSCFNumber timeIntervalSinceNow]:无法识别的选择器发送到实例 0x194490”

根据调试器,我亲爱的 NSDate 读取:“fingerprintsDate = (NSCFNumber *) 0x194490 139” - 当我打印描述时它读取:“{value = +139.0000000000, type = kCFNumberFloat32Type}”

我没有在代码中的其他任何地方使用 fingerprintsDate 做任何其他事情 - 但不知何故它变成了一个 NSNumer ...任何想法如何阻止它?

最佳答案

[NSDate date] 返回一个非保留值(如果您使用的是 arc,则返回一个弱值),因此它很可能在分配和调用 [fingerprintsDate timeIntervalSinceNow] 之间的某处被释放。当您将它分配给保留的(强)属性时,它就被保留了。

关于ios - NSDate 变成 NSNumber MYSTERY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8920918/

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