2014-10-29 4 views
0
내가 엑스 코드 6.1에서 스위프트에 목표 - C의 아이폰 OS 프로젝트를 다시 작성하려고 해요

을에있는 UIImageView 회전 값을 취득하지만이 목표 - C 라인 "번역"할 수 없습니다스위프트

CGFloat imageRotation = [[self.imageView valueForKeyPath:@"layer.presentationLayer.transform.rotation.z"] floatValue]; 

어떻게을 Swift에서 UIImageView 회전 값을 얻었습니까?

답변

7

이 약간 더 복잡한 스위프트의 valueForKeyPath 반환 이있는 옵션 때문에 다음 명시 적으로 NSNumber으로 캐스팅을 풀어 수있다. 이것은 (예를 들어) 및 선택적 캐스트 체인 임의의 조합으로 수행 할 수

let zKeyPath = "layer.presentationLayer.transform.rotation.z" 
let imageRotation = (self.imageView.valueForKeyPath(zKeyPath) as? NSNumber)?.floatValue ?? 0.0 

키 경로 설정되지 않은 경우 0.0 값을 설정 ?? 최종 "무풍 병합 연산자"(또는 NSNumber이 아님), 이는 이 floatValue 메시지를 nil에게 보내는 0.0을 반환하는 Objective-C의 동작을 모방합니다.

+0

대단히 고맙습니다. 그게 내가 찾고 있던 것입니다! –