2015-01-13 2 views
1

저는 Swift 및 iOS 개발 전반에 대해 새로운입니다. 최근에 Swift를 사용하여 CorePlot (ObjectiveC로 작성)을 사용하는 iOS 앱을 작성하려고했습니다. Swift에서 CorePlot iOS 샘플 코드 (http://www.raywenderlich.com/13271/how-to-draw-graphs-with-core-plot-part-2에 있음)를 다시 작성하려고했습니다.ObjectiveC mutableCopy가 신속하게 작동하는 방법

CPTMutableLineStyle *aaplLineStyle = [aaplPlot.dataLineStyle mutableCopy]; 
aaplLineStyle.lineWidth = 2.5; 

I는 다음과 같이 재 작성하려고 :

var lineStyle = aaplPlot.dataLineStyle.mutableCopy(); 
lineStyle.lineColor = aaplColor; 

문제는 내가

말의 코드 내 스위프트 버전에서 컴파일 오류가있는 샘플 오브젝티브 -c이 같은 라인이있다 나는 또한 말하는 경고를 받았습니다
"cannot assign to 'lineColor' in 'lineStyle'". 

"variable lineStyle inferred to have type 'AnyObject', which may be unexpected" 
내가 뭔가 잘못하고 경우

@interface CPTLineStyle : NSObject<NSCoding, NSCopying, NSMutableCopying> 

@property (nonatomic, readonly) CGLineCap lineCap; 
@property (nonatomic, readonly) CGLineJoin lineJoin; 
@property (nonatomic, readonly) CGFloat miterLimit; 
@property (nonatomic, readonly) CGFloat lineWidth; 
@property (nonatomic, readonly) NSArray *dashPattern; 
@property (nonatomic, readonly) CGFloat patternPhase; 
@property (nonatomic, readonly) CPTColor *lineColor; 
@property (nonatomic, readonly) CPTFill *lineFill; 
@property (nonatomic, readonly) CPTGradient *lineGradient; 
@property (nonatomic, readonly, getter = isOpaque) BOOL opaque; 

/// @name Factory Methods 
/// @{ 
+(instancetype)lineStyle; 
/// @} 

/// @name Drawing 
/// @{ 
-(void)setLineStyleInContext:(CGContextRef)context; 
-(void)strokePathInContext:(CGContextRef)context; 
-(void)strokeRect:(CGRect)rect inContext:(CGContextRef)context; 
/// @} 

@end 

어떤 몸이 말해 줄 수 :

'applePlot'는, 그런데, 오브젝티브 -c에 다음과 같이 정의 유형 CPTLineStyle이다? 해당 코드 줄을 신속하게 올바르게 다시 작성하려면 어떻게합니까?

감사

답변

5

문제는 mutableCopy이 AnyObject를 반환한다는 것입니다. AnyObject에는 속성이 없으므로 AnyObject에 속성을 할당 할 수 없습니다. 이것을 CPTMutableLineStyle에 캐스트해야합니다.

var lineStyle = aaplPlot.dataLineStyle.mutableCopy() as CPTMutableLineStyle 
lineStyle.lineColor = aaplColor; 
+0

다시 한 번 감사드립니다. 결국 CPTMutableLineStyle을 묻는 내 의견을 삭제 했으므로 답변을 얻지 못했습니다. – trungdinhtrong

관련 문제