Swift에서 Objective-C 코드 사용

예. 할 수 있습니다.

Unsplash에 Nikhil Mitra의 사진

Objective-C는 방대한 레거시 코드베이스를 가지고 있으며, 이는 언어가 아직 (적어도) 좋은 동안 널리 퍼져 있음을 의미합니다. 이는 Objective-C 코드를 Swift 프로젝트에 통합해야 함을 의미 할 수 있으며이 문서는이를 수행하는 데 도움이되도록 작성되었습니다.

난이도 : 초급 | 쉬운 | 정상 | 도전적인

전제 조건 :

  • 기본 iOS 단일보기 애플리케이션을 만들 수 있습니다 ( 여기 가이드 ).

브리징 : Swift 코드베이스에서 Objective-C 코드를 사용할 수 있도록 헤더 파일 사용

Objective-C : 객체 지향 언어

간단한 프로젝트의 데모

중앙에 단추가있는 단일보기 프로젝트 만들기

이 가이드는 독자가 간단한 프로젝트를 생성 할 수 있다고 가정하고, 뷰 중간에 레이블을 생성하는 대신 거기에 버튼을 놓고 뷰 컨트롤러에 액션을 추가합니다.

그러나 파란색 이외의 색상으로 이미지를 보려면 버튼 유형을 사용자 정의로 변경하고 텍스트 색상을 보이는 것으로 변경해야합니다. 콘센트가 설정되어 있습니다.이 경우 콘센트 myButton 이라고합니다 (모두 아래에 애니메이션 GIF로 표시됨).

프로젝트에 간단한 이미지 추가

프로젝트에 항목을 끌어다 놓아 리소스를 추가 할 수 있습니다. 버튼의 배경으로 사용하려면 JPEG 이미지를 프로젝트로 드래그 앤 드롭해야합니다.

TapGesture 추가

예 : 버튼에 액션을 만드는 다른 방법이 있지만이 경우 에는 버튼 사용을 감지 할 수 있는 UITapGestureRecognizer 를 사용합니다.

let tapGesture = UITapGestureRecognizer(target: self, action: #selector(buttonTapped))
myButton.addGestureRecognizer(tapGesture)

@objc func buttonTapped() {
  MyObjcClass().printit("Print ME")
}

Objective-C 클래스 추가

Cocoa Touch 클래스를 추가하고 언어가 Objective-C가되도록 지정할 수 있습니다.

이 과정은 브리징 헤더를 추가하는 것을 기억하면서 아래와 같이 애니메이션 GIF로 표시됩니다.

브리징 헤더에 클래스 추가

에 클래스를 추가해야 objcswift-Bridging-Header.h하며 다음 행을 추가합니다.

#import “MyObjcClass.h”

너무 까다 롭지 않습니다!

Objective-C 코드에 클래스 추가

그런 다음 인터페이스 (MyObjcClass.h)에 다음 서명을 추가해야합니다.

- (void) printit:(NSString *)message;

- (void) printit:(NSString *)message {
NSLog(@"%@", message);
}

결과

응용 프로그램을 실행할 때 버튼을 클릭하면 콘솔에 인쇄됩니다 !!! 우와!

결론:

Objective-C훌륭한 언어입니다. 해당 언어로 프로젝트를 생성하도록 선택하지 않을 수도 있지만 (테스트 된) 코드를 모두 다시 작성하지 않으려면 Swift에 연결해야 할 수도 있습니다. 두 언어를 연결하는 것은 쉬운 일이며이 가이드는이를 수행하는 데 도움이됩니다.

지식 확장

  • 애플은 스위프트로 오브젝티브 C를 가져 오는 방법에 대한 가이드가 여기를

질문 있어요? 여기 에서 나와 연락 할 수 있습니다.

Suggested posts

도메인 이름에 대한 정보 찾기

Brian P. Hogan의 Small, Sharp 소프트웨어 도구에서 발췌

도메인 이름에 대한 정보 찾기

facebook.com에 요청하면 컴퓨터가 도메인 이름을 조회하여 해당 도메인 이름을 IP 주소로 변환하므로 컴퓨터가 해당 연결을 만들 수 있습니다.

UI 디자인의 D-word와 L-word. 언어가 중요합니다. 인종 차별하지 마십시오.

UI 디자인의 D-word와 L-word. 언어가 중요합니다. 인종 차별하지 마십시오.

우리의 언어는 우리의 생각, 태도 및 행동을 형성할 수 있는 강력한 도구입니다. 무해해 보이는 용어도 해로운 편견과 고정관념을 영속화할 수 있습니다.

Related posts

지구를 구하고 돈을 버는 방법

지구를 구하고 돈을 버는 방법

페트병, 유리병, 알루미늄캔, 그린에너지 패키지를 무심코 버린 적이 몇 번이나 되셨나요? 재활용에 대한 대가로 무언가를 얻을 수 있기를 몇 번이나 바랐습니까? 당신이 대부분의 사람들과 같다면 대답은 아마도 여러 번일 것입니다. 재활용은 종종 번거로움, 자질구레한 일 또는 즉각적이거나 실질적인 혜택을 가져오지 않는 의무로 간주됩니다.

조던 닐리의 살인과 "애국적" 인종차별의 문제

미국은 인종차별적 행동을 좋은 미국인이 되는 것과 동일시하지 않는 필수적인 조치를 취할 수 있습니까?

조던 닐리의 살인과 "애국적" 인종차별의 문제

[방아쇠 경고: 이 에세이에는 Jordan Neely의 살인자를 칭찬하는 사람들의 스크린 샷이 포함되어 있습니다.] 법 집행관은 마침내 그리고 아마도 마지못해 죽을 때까지 Jordan Neely를 질식시킨 사람인 Daniel Penny를 살인 혐의로 기소했습니다.

기다림의 계절에 할 수 있는 것(기술 분야에서 첫 직장을 얻기 위해 기다림)

기다림의 계절에 할 수 있는 것(기술 분야에서 첫 직장을 얻기 위해 기다림)

새로운 직업으로 전환하는 것은 혼자서 하려고 한다면 매우 어려울 수 있습니다. 귀하와 동일한 학습 수준에 있고 유사한 목표, 끈기 및 추진력을 공유하는 책임 파트너를 찾는 것이 중요합니다.

안전한 작업 환경 조성

안전한 작업 환경 조성

“그는 내가 위험에 처했을 때 나를 지켜줄 것입니다. 그가 나를 그의 천막 안에 숨길 것이다.