programing

[NSBundlebundleForClass:[self class]]에 해당하는 신속한 기능

batch 2023. 4. 26. 23:08
반응형

[NSBundlebundleForClass:[self class]]에 해당하는 신속한 기능

다음 코드에 해당하는 것은 무엇입니까?

[NSBundle bundleForClass:[self class]]

테스트 번들(JSON 데이터)에서 리소스를 로드해야 합니다.

사용한 적은 없지만, 다음과 같이 해야 한다고 생각합니다.

스위프트 <= 2.x

NSBundle(forClass: self.dynamicType)

스위프트 3.x

Bundle(for: type(of: self))

스위프트 3:

Bundle(for: type(of: self))

스위프트 5

Bundle(for: Self.self)

개인적으로 좋아하는 것:

let bun = NSBundle(forClass: self.classForCoder)
let bundle = NSBundle(forClass:object_getClass(self))

만약 당신이 수업을 하고 있다면,

Bundle(for: type(of: self))

때때로 구조체에서 작업할 수 있으며 번들의 클래스를 사용해야 합니다.

Bundle(for: AnyClassInTheBundle.self)

선택한 답변은 UIView 하위 클래스의 정적 메서드에서 작동하지 않았지만 다음과 같은 결과를 얻었습니다.

Bundle(for: self.classForCoder)

이것은 또한 당신이 그것을 얻고 싶을 때에도 작동합니다.Bundle테스트 대상 범위 내에서

클래스의 dynamicType에 대한 xib 로드

    let bundle = NSBundle(forClass: self.dynamicType)
    let nib = UINib(nibName: "CellForAlert", bundle: bundle)
    let view =  nib.instantiateWithOwner(self, options: nil).first as! UIView
    view.frame = bounds
    view.autoresizingMask = [.FlexibleWidth, .FlexibleHeight]
    self.addSubview(view);

Swift 3.0에서는 다음을 사용할 수 있습니다.

func kZWGetBundle() -> Bundle{
    return Bundle(for: AnyClass.self as! AnyClass)
}

언급URL : https://stackoverflow.com/questions/25651403/swift-equivalent-of-nsbundle-bundleforclassself-class

반응형