[iOS]typealias는 이런 식으로도 쓸 수 있다. iOS

예시 소스코드는 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개발을 오래 해왔어도 저렇게 쓸 일이 없었던듯 하다. 
다른 언어였으면 좀 해봤었을까.. 싶지만, 아무튼 내가 알게 된거 내가 좋아서 정리하고, 기억하면 된거지.

끝.



덧글

댓글 입력 영역


adsence 160x600