2014-06-06 3 views
3

UInt16 값을 인수로 받아들이는 함수에 값을 전달하려고합니다.AnyObject에서 UInt16으로 다운 캐스트하는 방법은 무엇입니까?

구문 분석을 통해 데이터베이스를 쿼리하여 값을 받고 있습니다. 쿼리는 AnyObject 유형의 객체 (정수라고 알고 있음)를 반환합니다! 함수에 전달하기 위해서는 UInt16으로 변환해야합니다. 그러나 스위프트 (Swift)는 UInt16이 AnyObject 프로토콜을 따르지 않는다고 말합니다.

AnyObject 유형을 다운 캐스팅 할 수 있습니다! 성공적으로 Int로 보내지 만 그 Int를 UInt16으로 캐스팅 할 수는 없습니다.

아무도이 문제를 해결하는 방법을 알고 있습니까?

답변

6

당신은 as 타입 캐스트 연산자와 함께 IntAnyObject에서 캐스팅 할 수 있지만 즉, 대상 유형의 초기화를 사용할 필요가 다른 숫자 유형으로 다운 캐스트 :

var o: AnyObject = 1 
var n: Int = o as Int 
var u: UInt8 = UInt8(n) 
+0

당신이로 변환 할 데이터 형식의 initialiser를 사용하여 "주조", 즉'뉴 타입 (foo는) '. –

1

당신이해야 할 모든 추가 중입니다! 이후로 변환 중. 나는 그것이 도움이되기를 바랍니다 예를 들어

,

var amount : Int = user["Amount"] as! Int 

... 스위프트에서

관련 문제