0Pricing
Objective-C iOS Development for Legacy & Enterprise Apps · Урок

Связывание Objective-C со Swift

Разберитесь, как сделать классы и методы Objective-C доступными в Swift с помощью связующего заголовочного файла.

«Связывание Objective-C со Swift» — бесплатный урок Objective-C iOS Development for Legacy & Enterprise Apps на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Objective-C iOS Development for Legacy & Enterprise Apps, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Objective-C iOS Development for Legacy & Enterprise Apps содержит 4 уроков всего.

Части этого урока еще не переведены и отображаются на английском.

Bridging Obj-C to Swift

Welcome! In modern iOS development, you'll often encounter projects that mix Swift and Objective-C. This is especially true for legacy apps or when integrating older libraries.

This lesson teaches you how to make your existing Objective-C code accessible and usable within a Swift project, a process known as bridging.

The Bridging Header

The key to using Objective-C code in Swift is the bridging header. This is a special Objective-C header file that tells the Swift compiler which Objective-C classes, categories, and protocols it should expose to your Swift code.

Think of it as a translator's dictionary for your project.

Xcode's Automatic Helper

When you add your first Objective-C file (.h or .m) to an existing Swift project, Xcode will often prompt you:

  • "Would you like to configure an Objective-C bridging header?"

If you click 'Create Bridging Header', Xcode automatically sets up the file and configures your project's build settings for you. It's usually named YourProjectName-Bridging-Header.h.

Manual Setup Steps

If Xcode doesn't prompt you, or if you need to create one later, you can do it manually:

  1. Create a new header file (File > New > File > Header File) and name it YourProjectName-Bridging-Header.h.
  2. In your project's Build Settings, search for 'Objective-C Bridging Header'.
  3. Set the path to your new header file (e.g., $(SRCROOT)/YourProjectName/YourProjectName-Bridging-Header.h).

Importing Obj-C Files

Once you have your bridging header (whether created automatically or manually), you simply import the Objective-C header files (.h files) of the classes you want to use in Swift.

You do this using the standard Objective-C #import directive inside your bridging header:

#import "MyObjectiveCClass.h"

Do NOT import Swift files into the bridging header!

Example: Simple Obj-C Class

Let's define a simple Objective-C class called MyLogger. We'll put its header in our bridging header.

// MyLogger.h

#import <Foundation/Foundation.h>

@interface MyLogger : NSObject

- (void)logMessage:(NSString *)message;
- (NSString *)getGreetingForName:(NSString *)name;

@end

This class has two methods: one to log a message and one to return a personalized greeting.

Implementation of MyLogger

Here's the implementation for our MyLogger class:

// MyLogger.m

#import "MyLogger.h"

@implementation MyLogger

- (void)logMessage:(NSString *)message {
    NSLog(@"[MyLogger] %@", message);
}

- (NSString *)getGreetingForName:(NSString *)name {
    return [NSString stringWithFormat:@"Hello, %@!", name];
}

@end

Remember, you'd add #import "MyLogger.h" to your YourProjectName-Bridging-Header.h.

Using Obj-C in Swift

Once MyLogger.h is imported into the bridging header, Swift can see and use MyLogger just like any other Swift class! Notice how Objective-C methods are automatically translated into a more Swift-like syntax.

Try running this example:

import Foundation

// Assume MyLogger is available via the bridging header
// In a real project, MyLogger.m and .h would be compiled

@objcMembers
class MyLogger: NSObject {
    func logMessage(_ message: String) {
        print("[MyLogger] \(message)")
    }
    
    func getGreetingForName(_ name: String) -> String {
        return "Hello, \(name)!"
    }
}

// --- Swift code using the bridged class ---
let logger = MyLogger()
logger.logMessage("This is a message from Swift!")

let greeting = logger.getGreetingForName("CoddyKit Learner")
print(greeting)

Type Mapping & Naming

Swift automatically maps many Objective-C types to their Swift equivalents:

  • NSString becomes String
  • NSArray becomes Array
  • NSDictionary becomes Dictionary
  • NSError becomes Error

Objective-C methods are also often renamed to fit Swift's naming conventions (e.g., - (void)logMessage:(NSString *)message; becomes func logMessage(_ message: String)).

Quick Check

You've learned about the bridging header. How does it enable Objective-C code to be used in Swift?

Recap: Bridging Success!

Great job! You've learned the fundamentals of bridging Objective-C code to Swift.

  • The bridging header is your gateway.
  • Xcode can auto-create it.
  • You #import Objective-C header files into it.
  • Swift automatically handles type mapping and naming conventions.

This skill is vital for working on mixed-language projects and integrating with existing Objective-C libraries!

Часто задаваемые вопросы

Урок «Связывание Objective-C со Swift» бесплатный?

Да — полный текст урока «Связывание Objective-C со Swift» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Objective-C iOS Development for Legacy & Enterprise Apps, подпишись на CoddyKit PRO. Курс Objective-C iOS Development for Legacy & Enterprise Apps содержит 4 уроков всего.

Чему я научусь в уроке «Связывание Objective-C со Swift»?

Разберитесь, как сделать классы и методы Objective-C доступными в Swift с помощью связующего заголовочного файла. Ты практикуешь Objective-C iOS Development for Legacy & Enterprise Apps с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Objective-C iOS Development for Legacy & Enterprise Apps?

Предыдущий опыт не требуется. Objective-C iOS Development for Legacy & Enterprise Apps на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Связывание Objective-C со Swift»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Objective-C iOS Development for Legacy & Enterprise Apps?

Да. Каждый урок Objective-C iOS Development for Legacy & Enterprise Apps включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Связывание Objective-C со Swift
  2. Связывание Swift с Objective-C
  3. Создание фреймворков Objective-C
  4. Обработка допуска пустых значений и сопоставление типов между языками
← Назад к Objective-C iOS Development for Legacy & Enterprise Apps