- 작성시간 : 2022/12/21 14:48
- 퍼머링크 : gsstudio.egloos.com/4443946
- 덧글수 : 0
예시 소스코드는 kingfisher
#if os(macOS)
import AppKit
public typealias KFCrossPlatformImage = NSImage
public typealias KFCrossPlatformView = NSView
public typealias KFCrossPlatformColor = NSColor
public typealias KFCrossPlatformImageView = NSImageView
public typealias KFCrossPlatformButton = NSButton
#else
import UIKit
public typealias KFCrossPlatformImage = UIImage
public typealias KFCrossPlatformColor = UIColor
#if !os(watchOS)
public typealias KFCrossPlatformImageView = UIImageView
public typealias KFCrossPlatformView = UIView
public typealias KFCrossPlatformButton = UIButton
#if canImport(TVUIKit)
import TVUIKit
#endif
그동안은 typealias를 써온 방법을 나열하자면..
- 단순치환
- closure를 깔끔하게 만들기
- 프로토콜 선언 시에 사용
정도였던 것 같다.
kingfisher가 업데이트가 많이 된걸 이제 봐서 소스코드좀 살피다가 단순하고, 당연한건데, 정리 안해놓으면 잊어버려서 검색할 단어도 알기 어려운 그런 느낌이라, 단순하게 정리.
전처리기와 함께 사용하여 OS별로 다른 클래스를 정의하도록.
아무래도 저렇게 작업할 일은 많지 않다보니 iOS개발을 오래 해왔어도 저렇게 쓸 일이 없었던듯 하다.
다른 언어였으면 좀 해봤었을까.. 싶지만, 아무튼 내가 알게 된거 내가 좋아서 정리하고, 기억하면 된거지.
끝.
덧글