【发布时间】:2012-06-28 20:31:01
【问题描述】:
以下技术有什么问题:
@property(nonatomic, assign) NSUInteger timestamp;
@property(nonatomic, readonly, getter = timestamp) NSUInteger startTime;
@property(nonatomic, assign) NSUInteger endTime;
我确信我可以找到一种更好的方法来组织它,但这就是我在项目中的某个时刻得到的结果,我注意到 访问 startTime 属性总是返回 0,即使时间戳属性已设置为正确的时间戳。
似乎已将 startTime 的 getter 设置为现有属性(时间戳),当我这样做时它不会转发时间戳的值:
event.startTime => 0
event.timestamp => 1340920893
顺便说一句,所有这些都是时间戳。
提醒一下,我知道上述情况应该发生在我的项目中,但我不明白为什么访问 startTime 不会转发到时间戳属性。
更新
在我的实现中,我正在综合所有这些属性:
@synthesize timestamp, endTime, startTime;
请查看我在 GitHub 上的 gist 中演示的示例对象:https://gist.github.com/3013951
【问题讨论】:
-
错误是什么?
getter? -
其实我的回答错了。如果您有多个属性链接到同一个选择器,这并不重要。我会说这没有问题......
-
@RichardJ.RossIII 我只在 ARC 项目的最新 XCode 中运行了我的测试。这可能是 Clang 在某个时候发生的变化。
-
我在访问 startTime 时没有收到错误,但无论时间戳属性是什么,该值始终为 0。
标签: objective-c properties getter