사용자가 추가 버튼을 누르면 다음 -awakeFromInsert
구현이 UI에 어레이 제어기에 의해 인스턴스화 된 새로운 객체의 속성을 설정 새로운 개체에 의해 수신 될 때 -awakeFromInsert 메시지 :관계는 (NULL) NSOrderedSet
- (void)awakeFromInsert
{
[super awakeFromInsert];
NSLog(@"Adding perceptron %ld to layer %ld", self.indexInLayer, self.layer.indexInNetwork);
NSLog(@"New perceptron added to layer %@", self.layer);
// more code here to do the configuration
}
문제는 새 객체의 self.parent
관계가 -awakeFromInsert
이 호출 될 때 설정되지 않는다는 것입니다 (따라서 nil 임). 따라서 부모 객체에 액세스 할 수 없습니다. 예를 들어, 새 객체가 얼마나 많은 자식인지 또는 새 객체가 어떤 색인인지 등) . 위의 코드의
출력 :
2012-12-17 21:36:39.309 MLPManager[98112:403] Adding perceptron 0 to layer 0
2012-12-17 21:36:39.309 MLPManager[98112:403] New perceptron added to layer (null)
은 내가 UITableView
가에있는 개체의 인덱스를 추가 할를 호출 할 때 indexInLayer
방법은 완벽하게 작동하기 때문에 새로운 객체가 올바르게 연결되고 있다는 것을 확신 보기 :
- (NSUInteger)indexInLayer
{
NSUInteger index = [self.layer.perceptrons indexOfObject:self];
//NSLog(@"indexInLayer returning %ld", index);
return index;
}
내 데이터 모델은 세 기관이있다 : 네트워크, 레이어, 퍼셉트론 주문한 세트로 배열 일대 관계에 의해 다음에 연결 (예 : 부모를 - 자식 - 손자). 내 UI에는 3 개의 어레이 컨트롤러와 3 개의 UITableViews
이 있습니다. 하위 배열 컨트롤러에 선택한 부모의 자식 만 포함되도록하고 하위 노드 컨트롤러에 선택한 자식의 손자 만 포함하도록 설정했습니다. 이 배열 컨트롤러에 자식 또는 손자를 추가하면 현재 선택된 부모의 자식으로 자동 설정됩니다. 그건 모두 잘 작동합니다.
UI로 설정 한 시점은 self.layer
입니까? 누군가 -awakeFromInsert
이후에 발생했음을 확인할 수 있습니까? 그렇다면 -awakeFromInsert
내에서 새 객체를 구성 할 수 없다면 어떻게해야합니까? -awakeFromInsert
에 대한 Apple의 설명서는 "수신기가 처음으로 관리 대상 객체 컨텍스트에 삽입 될 때 Core Data 프레임 워크에 의해 자동으로 호출됩니다"라고 말합니다.
I 데이터 구조의 계층 개체와 다른 부분에 대한 정보를 필요로하는 이유는 I 자동으로 새로운 퍼셉트론 객체 동시에 여러 다른 객체 (퍼셉트론 즈 (Perceptrons)의 하위 가중치)를 인스턴스화 할 필요가있다. 이러한 종류의 작업에 -awakeFromInsert
을 사용해야합니까?