아래 두가지 용도가 아니라면사용을 지양한다.
@objc
가 붙은 멤버에 접근할 수 있다.
import Foundation
class AAA {
@objc func aMethod() {
}
}
class BBB {
@objc func bMethod() {
}
}
let b: AnyObject = BBB()
b.aMethod?() // 이 코드가 가능함
// 결과는 nil
아래 두가지 용도가 아니라면 사용을 지양해야한다. (항상 구체적인 타입을 사용하는것이 좋음)
var value: AnyObject = UIView() // class instance
var value: AnyObject = UIView.self // class type instance
var value: Anyobject = ... // class-only protocol instance
Objective-C class 에 브릿지되는 타입의 인스턴스
Many value types in Swift bridge to Objective-C counterparts, like
String
andInt
.
let s: AnyObject = "This is a bridged string." as NSString
print(s is NSString)
// Prints "true"
let v: AnyObject = 100 as NSNumber
print(type(of: v))
// Prints "__NSCFNumber"