2013-11-03 1 views
0

코어 플롯 및 바인딩을 사용하여 원형 차트를 설정하려고합니다. I는 CPTPieChartBindingPieSliceWidthValues ​​바인딩을 사용하여 코어 플롯 데이터 레이블을 구성하는 방법

를 사용하여 적절하게 표시하는 그래프를 얻을 수
[pieChart bind:CPTPieChartBindingPieSliceWidthValues 
    toObject:[self sectorAllocation] 
     withKeyPath:@"arrangedObjects.sectorPercentage" 
      options:nil]; 

(sectorAllocation가있는 NSArray 컨트롤러) 유사 난 CPTPlotBindingDataLabels

[pieChart bind:CPTPlotBindingDataLabels 
      toObject:[self sectorAllocation] 
     withKeyPath:@"arrangedObjects.sectorName" 
      options:nil]; 

를 사용하여 바인딩 데이터 레이블 시도

(sectorName가있는 NSString 값이다)

그러나이 작동하지 않는 것 같습니다 콘솔에서 다음과 같은 오류가 나타납니다

[__NSCFString setShadow는 :] : 인식 할 수없는 선택기 예 문자열 객체를 좋아하지 않는 것 같다 0x60800023fb00

로 전송, 그래서 나는 이것에 대해 어떻게 갈 것인가? 어떤 유형의 객체를 찾고 있습니까?

답변

2

바인딩은 각 데이터 색인에 대해 하나씩 코어 플롯 (CPTLayer)의 NSArray을 필요로합니다. CPTTextLayer은 텍스트를 표시하기 때문에 일반적으로 선택되지만 다른 레이어 유형도 허용됩니다.

0

분명히 코어 플롯은 인스턴스가 setShadow:에 응답하는 클래스를 기대합니다. 코코아에는 afaik : NSView 클래스가 하나만 있습니다. 이것은 라벨을 그리기위한 합리적인 클래스 인 것 같습니다.

또한 Core Plot의 설명서를 검색하여 setShadow:에 응답하는 프레임 워크 클래스가 있는지 여부를 확인할 수 있습니다.

+0

OK는 CALayer의 하위 클래스 인 CPTTextLayer의 인스턴스를 찾는 것처럼 보입니다. NSString 인스턴스를 CPTTextLayer 인스턴스로 변환하기 위해 NSValueTransformer를 사용할 것으로 의심됩니다. – Cory