8

我的界面中有这个:

@property (nonatomic, weak) NSTimeInterval *timeStamp;

我的逻辑告诉我,我需要一个时间戳对象,该对象只会在其实例化的上下文中被此类使用,因此“弱”对我来说似乎是合乎逻辑的——但 XCode 告诉我“带有 ' 的属性弱'属性必须是对象类型“......如果我只是这样做:

@property (nonatomic) NSTimeInterval *timeStamp;

然后错误消失了,但我不确定我明白为什么......

4

1 回答 1

14

问题是它NSTimeInterval是一个值类型——它double本质上是 的别名(检查 NSDate.h 的 typedef)。该weak属性仅适用于具有保留计数的对象(即任何从NSObject或下降的对象NSProxy)。

因此,存储指向的指针NSTimeInterval可能是您的错误。您很可能永远不会收到指向 an 的指针,NSTimeInterval除非您希望写入给定地址作为函数的输出(在这种情况下可能是回调)。也就是说,我不知道有任何NSTimeInterval *作为返回类型的函数,也不知道有任何将其传递给回调的函数。

于 2012-08-17T23:30:21.330 回答