숫자와 숫자에 대해 NSObject
의 하위 클래스가 있습니다. 이들 중 둘 다 데이터 소스 (숫자 또는 숫자)와 델리게이트 , 뷰 컨트롤러.모델 객체의 속성으로보기 대체
보기를 & 모델이 함께 작동하여 숫자보기를 해당 숫자의 속성으로 설정하는 데 유용하다는 사실을 발견했습니다.
예를 들어, Number 클래스에는 숫자가 들어있는 NSMutableArray
속성이 있습니다. 이 코드는 잘 작동
-(void) updateNumberViewFrameSize:(ACNumberView*) sender
{
NSUInteger i;
float width = 0, height = 0;
for (ACDigit* digit in [sender.dataSource returnNumberViewDataSource].digitArray)
{
width += digit.digitView.size.width;
height += digit.digitView.size.width;
}
sender.frame = CGRectMake(sender.frame.origin.x, sender.frame.origin.y, width, height);
}
을,하지만 난 그게 좋은 방법이 아니다 느낌 : 나는 해당 NumberView의 크기를 찾으려면
, 나는 컨트롤러에서 다음과 같이 코드를 작성할 수 있습니다 쓰기 모델 자체에서 포인터를 사용하지 않아도 모델에서 뷰에 대한 포인터를 보유하십시오.
나쁜 실행 인 경우, 잠재적 인 함정은 무엇이며,이 유형의 끝을 얻는 더 좋은 방법이 있습니까?
왜 잘못되었는지에 대한 좋은 예입니다. 보기에서 하위보기에 액세스 할 수 있습니까? – chartman
@chartman 예, [하위보기보기]. –
맞습니다. 뷰에서 데이터를 가져 오는 것보다 뷰에 유지해야하는 내용을 기반으로 뷰의 크기를 계산하는 것이 훨씬 낫습니다. – chartman