합성.몇 가지 코드를 그냥 작동하지 못한 이유를 난 그냥 알아 낸 것 재산권 Unretained
@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
을 설정하지 않는 한
당신이 초기화'channels'을 표시했습니다, 그래서 그것을 기대하는 코드 중에 가치가 없다 '0'이된다. 중요한 걸 버렸어? –
http://stackoverflow.com/questions/3488446/is-a-synthesized-property-already-alloc-init-ed?rq=1 – hooleyhoop
는'@의 synthesize'가 자동으로'당신을위한 객체를 alloc'하지 않습니다. 그냥 변수에 대한 getter와 setter를 만듭니다. – wquist