2010-12-10 3 views
0

안녕하세요, 두 번 탭 확대/축소를 구현하려고하고 있으며 Apple의 ScrollViewSuite example 코드에서 작업하려고하고 있으며 여러 줄에서 오류가 발생합니다.ios dev에 CGRect & CGPoint에 대한 도움이 필요합니다.

첫 번째

tapLocation = midpointBetweenPoints(tapLocation, [touch locationInView:touch.view]); 

및 IT 과제에 호환되지 않는 유형을 말한다. midpointBetweenPoints에 대한 많은 정보를 찾을 수 없었습니다. 두 CGPoint를 비교하고 그것이 통과 한 것입니다. 오류를 제공

두 번째 섹션은

CGRect zoomRect = [self zoomRectForScale:newScale withCenter:tapPoint]; 

입니다 그리고 그것은 나에게 잘못된 초기화를 제공합니다.

내가 뭘 잘못하고 있는지 아는 사람이 있습니까?

답변

1

중간 점 BetweenPoints와 zoomRectForScale : withCenter는 iOS 자체의 일부가 아닌 예제 코드의 일부입니다.

중간 점 BetweenPoints는 할당에 대한 오류와 관련된 CGPoint를 반환하지만 임의의 헤더에 선언되지 않습니다. 사용되는 샘플에서 3_Tiling이라는 것은 TapDetectingView.m의 176 행에 정의되어 있으며 54 행에 선언되어 118 및 139에 사용 된 것을 볼 수 있습니다. 프로젝트에서 코드를 작성하거나 정의를 포함하지만 선언을 생략하십시오. Objective-C는 C의 상위 집합이므로 C 규칙을 따릅니다. C에서 선언을 찾을 수없는 함수는 'int'를 반환한다고 가정합니다. 아마 선언문을 추가해야합니다 :

CGPoint midpointBetweenPoints(CGPoint a, CGPoint b); 

어딘가에 사용하기 전에.

짐작 컨대, zoomRectForScale : withCenter :를 사용하면 비슷한 문제가 발생할 수 있습니다. 선언문이 Objective-C 메소드에서 발견되지 않으면 'Objective-C'메소드에 대한 포인터 인 'id'를 리턴한다고 가정합니다. CGRect는 C 구조체이므로 포인터를 캐스팅하는 것은 의미가 없습니다. RootViewController.m의 401 행에서 416 행까지의 코드가 포함되었다고 가정하면 호출 코드에서 선언을 볼 수 있어야합니다. 샘플 코드에서이 선언문 라인 80에서 달성된다 : 그런

@interface RootViewController (UtilityMethods) 
- (CGRect)zoomRectForScale:(float)scale withCenter:(CGPoint)center; 
@end 

선언 추가 된 소스 파일 내부 오브젝티브 C의 전용 방법을 근사하는 방법이다. 공개로 설정하려면 적절한 인터페이스 선언에 추가하면됩니다.

관련 문제