【发布时间】:2013-12-25 08:20:02
【问题描述】:
我只是对应该使用惰性实例化感到困惑。 不过我理解惰性实例化的基本概念。
" 我知道在 Objective-C 中所有属性都以 nil 开头,并且向 nil 发送消息没有任何作用,因此您必须使用 [[Class alloc] init]; 在向新创建的属性发送消息之前进行初始化。 "(Lazy instantiation in Objective-C/ iPhone development)
m.file:
@property (strong, nonatomic) NSMutableArray *cards;
- (NSMutableArray *)cards
{
if (!_cards) _cards = [[NSMutableArray alloc] init];
return _cards;
}
- (void)addCard:(Card *)card atTop:(BOOL)atTop
{
if (atTop) {
[self.cards insertObject:card atIndex:0];
} else {
[self.cards addObject:card];
} }
好吧,我真正不明白的是什么时候应该使用这种类型的实例化? 大多数情况下我看到这样的代码:
h.文件:
@interface Card : NSObject
@property (strong, nonatomic) NSString *contents;
m.file:
if([card.contents isEqualToString:self.contents]){
score = 1;
}
*这可能是一个愚蠢的问题,但我真的很困惑。我是新来的,谢谢。
【问题讨论】:
-
延迟安装 = 延迟初始化?
-
这是惰性实例化!
标签: ios objective-c properties