내가이 수업을 객체 그 다음 이니셜 라이저에서 :서브 클래스는
초기화에 따라서이 AdvObject 클래스의0 내가 가지고
@implementation AdvObject
@synthesize basics = _basics;
-(id)initWithBasic:(BasicObject *)bObj
{
if(self = [super init]) {
_basics = bObj;
}
return self;
}
을 그리고 그 후 나는 내가 object.basics가 제대로 작성해야 물론이 개체를 반환 할 때,하지만 난 object.propertyOne에 액세스 할 수없는 이유 ? (이것은 없음). 내가 뭘 잘못하고있어? 이것은 올바른 디자인입니까?
당신은 거의 절대 안됩니다. 이니셜 라이저에서'self' 또는'nil' 이외의 것을 반환하지 않았습니까? 그것은 ARC를 지옥 구멍으로 보내고 참조 된 코드를 망각으로 보냅니다. 많은 시간이 위와 같이 잘못 작성된 코드를 디버깅하는 데 많은 시간을 소비했습니다. 다른 클래스의 객체를 반환해야하는 경우'+ alloc'에서 수행하십시오. –
감사합니다. 기억합니다. 그러나'+ alloc'은 나를위한 해결책이 아니라고 생각합니다. 나는 물체를 가지고 있고 그 물체가 조건을 만족 시키면 다른 물체가되어야한다. 그것을 성취하는 방법? – Kuba
+ +'alloc '에 +1. 이것이 클래스 클러스터가 작동하는 방법입니다. –