【发布时间】:2012-09-27 15:30:48
【问题描述】:
在 iOS 上独家使用 Objective-C 几年后,我最近一直在追赶我的 c++,而“新风格”c++ 上出现最多的话题是 RAII
为了确保我正确理解 RAII 概念,您是否会将 Objective-C 延迟加载属性访问器视为一种 RAII?比如检查下面的访问方式
- (NSArray *)items {
if(_items==nil) {
_items=[[NSArray alloc] initWithCapacity:10];
}
return _items
}
这会被视为 RAII 的一个例子吗?如果不是,你能解释一下我错在哪里吗?
【问题讨论】:
-
你为什么认为延迟加载会成为 RAII 的一个元素?
-
我猜是因为我显然不太了解 RAII :)
-
这是一个完全合法的问题,我只是说让这个问题对每个人都更有帮助,包括你头脑中的推理。就像问题一样,“葡萄柚是气候变化的一个因素吗?”这将有助于解释您认为的联系是什么。
-
好吧,我认为 RAII 主要是为了确保资源在您“获取”它后就可以使用,哪种延迟加载有点像,也许类似?但是知道我知道RAII不一样,我错了
标签: c++ objective-c lazy-loading raii meta