4
을 나는 지능 (또는 INT16 또는 UINT8) 엑스 코드 (8) 즉- 새로운 스위프트 컴파일러
값을 주어졌다 AnyObject의 종류를 확인해야 - 전환 객체를 사용하여 케이스를 사용합니다. is Uint8
, is Int16
, is Int
작동합니다.
Xcode 9에서는 항상 true 인 첫 번째 사례를 입력합니다.
var t1: AnyObject?
var t2: AnyObject?
t1 = 30 as AnyObject
t2 = Int16(30) as AnyObject
if let obj1 = t1 {
switch obj1 {
case is UInt8:
print("UInt8")
case is Int16:
print("Int16")
case is Int:
print("Int")
default:
break
}
}
if let obj2 = t2 {
switch obj2 {
case is UInt8:
print("UInt8")
case is Int16:
print("Int16")
case is Int:
print("Int")
default:
break
}
}
엑스 코드 (8) 놀이터 콘솔 인쇄 :
지능
INT16
엑스 코드 9 놀이터 콘솔 인쇄 : 여기
운동장에 대한 코드 샘플입니다UINT8
UINT8
A. 누군가 설명 할 수 있고/또는 첨부 할 수 있습니까? 이에 관한 문서화 된 참고서는 무엇입니까?
B. 나는 누군가 XCode 9에서 똑같은 기능을 수행하도록 도울 수있어서 행복 할까.
고마워. 모든 숫자 유형 Any
있습니다 스위프트 3 이후
NSCFNumber에 브리징하는 것이 정확히 일어납니다. 'print of this type 'of of obj – MatanGold
이렇게 생각합니다. 'AnyObject'는 클래스 타입이고'Intxx'는 클래스가 아닙니다. 따라서 AnyObject로 캐스팅하면 NSNumber로 변환해야합니다. – JeremyP