我剛剛弄清楚爲什麼某些代碼剛剛失敗。我有類似於下面的東西:合成屬性未保存
@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
有0x0到內存地址在init
構造這個類?我無法弄清楚爲什麼會發生這種事。我一定會調用這個構造函數,並且它應該綜合這個屬性讓我可以隨心所欲地做任何事情。
你已經證明初始化'channels',所以我希望它的代碼都不是價值是'0'。你有沒有遺漏一些重要的東西? – 2012-08-02 20:45:05
http://stackoverflow.com/questions/3488446/is-a-synthesized-property-already-alloc-init-ed?rq=1 – hooleyhoop 2012-08-02 20:46:39
'@ synthesize'不會自動爲你分配一個對象。它只是爲該變量創建一個getter和setter。 – wquist 2012-08-02 20:47:34