【发布时间】:2012-08-02 20:41:54
【问题描述】:
我刚刚弄清楚为什么某些代码无法正常工作。我有类似以下的内容:
@interface Client : NSObject {
Connection *connection;
}
@property (retain) NSMutableDictionary *channels;
接下来是这个实现:
@implementation Client
@synthesize channels;
- (id)init
{
self = [super init];
if (self) {
// do whatever I want
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
}
return self;
}
知道为什么channels 在此类的init 构造函数中的内存地址为0x0 吗?我一生都无法弄清楚为什么会发生这种情况。我肯定会调用那个构造函数,它应该是合成属性,让我可以用它做任何我想做的事情。
【问题讨论】:
-
您显示的代码都没有初始化
channels,所以我希望它的值是0。你遗漏了什么重要的事情吗? -
@synthesize不会自动为您提供alloc对象。它只是为该变量创建了一个 getter 和 setter。 -
@CarlNorum 我刚看到你的评论就拉屎了。我确实是个累人。将其作为您的答案,以便我可以将其标记为正确而不是评论。
-
别担心,有几个答案已经说了同样的话。你可以选择其中之一。
标签: objective-c